Skip to content

Commit 920c31a

Browse files
committed
fixes
1 parent 0ef6821 commit 920c31a

File tree

3 files changed

+33
-34
lines changed

3 files changed

+33
-34
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# KdbInsideBrains Changelog
22

3-
## 6.3.2
3+
## 6.3.3
44

55
### Fixed
66

src/main/java/org/kdb/inside/brains/psi/mixin/QLambdaMixin.java

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -62,52 +62,53 @@ public boolean isImplicitDeclaration(@NotNull QVariable variable) {
6262
}
6363

6464
private QVarDeclaration findInParameters(QParameters parameters, String name) {
65-
final SearchResult result = new SearchResult();
66-
parameters.acceptChildren(new DeclarationsVisitor() {
65+
final DeclarationsVisitor visitor = new DeclarationsVisitor() {
6766
@Override
6867
public void visitElement(@NotNull PsiElement element) {
6968
if (element instanceof @NotNull QVarDeclaration d) {
7069
if (d.getName().equals(name)) {
71-
result.declaration = d;
70+
declaration = d;
7271
stopWalking();
7372
}
7473
} else {
7574
super.visitElement(element);
7675
}
7776
}
78-
});
79-
return result.declaration;
77+
};
78+
parameters.acceptChildren(visitor);
79+
return visitor.declaration;
8080
}
8181

8282
private QVarDeclaration findInExpressions(QExpressions expressions, QVariable variable, String name) {
83-
final SearchResult result = new SearchResult();
84-
for (QExpression expression : expressions.getExpressionList()) {
85-
// We iterate over each expression and takes the right as the best because Q is right-to-left language
86-
expression.accept(new DeclarationsVisitor() {
87-
@Override
88-
public void visitElement(@NotNull PsiElement element) {
89-
// we don't search inside others lambda, query, table or dict
90-
if (isContextualElement(element)) {
91-
return;
92-
}
83+
final DeclarationsVisitor visitor = new DeclarationsVisitor() {
84+
@Override
85+
public void visitElement(@NotNull PsiElement element) {
86+
// we don't search inside others lambda, query, table or dict
87+
if (isContextualElement(element)) {
88+
return;
89+
}
9390

94-
// no reason to search after the definition.// In a lambda it can't be below.
95-
if (element.equals(variable)) {
96-
result.containsVariable = true;
97-
} else if (element instanceof QVarDeclaration d) {
98-
if (name.equals(d.getName()) && !QPsiUtil.isGlobalDeclaration(d)) {
99-
result.declaration = d;
100-
}
101-
} else {
102-
super.visitElement(element);
91+
// no reason to search after the definition.// In a lambda it can't be below.
92+
if (element.equals(variable)) {
93+
containsVariable = true;
94+
} else if (element instanceof QVarDeclaration d) {
95+
if (name.equals(d.getName()) && !QPsiUtil.isGlobalDeclaration(d)) {
96+
declaration = d;
10397
}
98+
} else {
99+
super.visitElement(element);
104100
}
105-
});
101+
}
102+
};
103+
104+
for (QExpression expression : expressions.getExpressionList()) {
105+
// We iterate over each expression and takes the right as the best because Q is right-to-left language
106+
expression.accept(visitor);
106107

107108
// if the declaration found - grate;
108109
// if the expression contains the original variable and no declaration in the expression, we stop anyway.
109-
if (result.declaration != null || result.containsVariable) {
110-
return result.declaration;
110+
if (visitor.declaration != null || visitor.containsVariable) {
111+
return visitor.declaration;
111112
}
112113
}
113114
return null;
@@ -117,12 +118,10 @@ private boolean isContextualElement(@NotNull PsiElement element) {
117118
return element instanceof QLambdaExpr || element instanceof QQueryExpr || element instanceof QTableExpr || element instanceof QDictExpr;
118119
}
119120

120-
private static class SearchResult {
121-
boolean containsVariable;
122-
QVarDeclaration declaration;
123-
}
124-
125121
private static class DeclarationsVisitor extends PsiRecursiveElementWalkingVisitor {
122+
protected boolean containsVariable;
123+
protected QVarDeclaration declaration;
124+
126125
@Override
127126
public void visitComment(@NotNull PsiComment ignore) {
128127
}

version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
pluginVersion=6.3.2
1+
pluginVersion=6.3.3

0 commit comments

Comments
 (0)