Skip to content

Commit

Permalink
Merge pull request #116 from kdbinsidebrains/qspec
Browse files Browse the repository at this point in the history
throwing exception fixed
  • Loading branch information
smklimenko authored Mar 2, 2025
2 parents 9dc5ce6 + ab58c59 commit ce0f083
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -258,9 +258,11 @@ public void invoke(@NotNull Project project, Editor editor, PsiFile file) throws
final QExpressions existExpressions = exist.getExpressions();
if (existExpressions == null) {
final QLambdaExpr lambda = exist.getLambda();
final PsiElement lastChild = lambda.getLastChild();
lambda.addBefore(expressions, lastChild);
lambda.addBefore(QPsiUtil.createWhitespace(project, "\n"), lastChild);
if (lambda != null) {
final PsiElement lastChild = lambda.getLastChild();
lambda.addBefore(expressions, lastChild);
lambda.addBefore(QPsiUtil.createWhitespace(project, "\n"), lastChild);
}
} else if (expressions.getChildren().length > 0) {
existExpressions.add(QPsiUtil.createWhitespace(project, "\n\n"));
final @NotNull PsiElement[] children = expressions.getChildren();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ protected void insertCode(@NotNull Project project,

final TestItem root = descriptor.getLocalRoot();
final QLambdaExpr lambda = root.getLambda();
if (lambda == null) {
return;
}
final QExpressions expressions = lambda.getExpressions();
if (expressions == null) {
PsiElement expr = ((QLambdaExpr) createCustomCode(project, "{`}")).getExpressions();
Expand Down
7 changes: 4 additions & 3 deletions src/main/java/org/kdb/inside/brains/lang/qspec/TestItem.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,15 @@ public QInvokeFunction getInvoke() {
return invoke;
}

@NotNull
@Nullable
public QLambdaExpr getLambda() {
return (QLambdaExpr) Objects.requireNonNull(invoke.getExpression());
return invoke.getExpression() instanceof QLambdaExpr lambda ? lambda : null;
}

@Nullable
public QExpressions getExpressions() {
return getLambda().getExpressions();
final QLambdaExpr lambda = getLambda();
return lambda == null ? null : lambda.getExpressions();
}

public boolean is(String name) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.util.ProcessingContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.kdb.inside.brains.lang.qspec.TestDescriptor;
import org.kdb.inside.brains.lang.qspec.TestItem;
import org.kdb.inside.brains.psi.*;
Expand Down Expand Up @@ -116,7 +117,11 @@ protected ResolveResult[] resolveElement(QVariable element) {
return symbols.stream().map(PsiElementResolveResult::new).toArray(ResolveResult[]::new);
}

private void collectMockDeclarations(PsiElement el, String name, List<QSymbol> symbols) {
private void collectMockDeclarations(@Nullable PsiElement el, String name, List<QSymbol> symbols) {
if (el == null) {
return;
}

final Collection<QVarReference> vars = PsiTreeUtil.findChildrenOfType(el, QVarReference.class);
if (vars.isEmpty()) {
return;
Expand Down

0 comments on commit ce0f083

Please sign in to comment.