From 98459cfdcb6c802b7474710c10dc4c96787a1701 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 15 Jun 2011 17:32:10 +0200 Subject: [PATCH] JetCallExpression.getCalleeExpression() is actually nullable with the current parser --- .../org/jetbrains/jet/lang/psi/JetCallExpression.java | 6 ++---- .../org/jetbrains/jet/lang/types/JetTypeInferrer.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java b/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java index 9315f82655f..83deea6514e 100644 --- a/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java +++ b/idea/src/org/jetbrains/jet/lang/psi/JetCallExpression.java @@ -21,11 +21,9 @@ public class JetCallExpression extends JetExpression implements JetCall { visitor.visitCallExpression(this); } - @NotNull + @Nullable public JetExpression getCalleeExpression() { - JetExpression callee = findChildByClass(JetExpression.class); - assert callee != null; - return callee; + return findChildByClass(JetExpression.class); } @Override diff --git a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java index 8b7dc70e6c2..f6ed720f46c 100644 --- a/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java +++ b/idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java @@ -1801,7 +1801,10 @@ public class JetTypeInferrer { selectorExpression.accept(new JetVisitor() { @Override public void visitCallExpression(JetCallExpression callExpression) { - callExpression.getCalleeExpression().accept(this); + JetExpression calleeExpression = callExpression.getCalleeExpression(); + if (calleeExpression != null) { + calleeExpression.accept(this); + } } @Override @@ -1839,7 +1842,11 @@ public class JetTypeInferrer { } private JetType getCallExpressionType(@Nullable JetType receiverType, @NotNull JetCallExpression callExpression) { - OverloadDomain overloadDomain = getOverloadDomain(receiverType, scope, callExpression.getCalleeExpression(), callExpression.getValueArgumentList()); + JetExpression calleeExpression = callExpression.getCalleeExpression(); + if (calleeExpression == null) { + return null; + } + OverloadDomain overloadDomain = getOverloadDomain(receiverType, scope, calleeExpression, callExpression.getValueArgumentList()); return resolveCall(scope, overloadDomain, callExpression); }