JetDecomposerPattern.getArgumentList() may return null
This commit is contained in:
@@ -124,7 +124,10 @@ public class JetControlFlowProcessor {
|
|||||||
@Override
|
@Override
|
||||||
public void visitDecomposerPattern(JetDecomposerPattern pattern) {
|
public void visitDecomposerPattern(JetDecomposerPattern pattern) {
|
||||||
value(pattern.getDecomposerExpression(), inCondition);
|
value(pattern.getDecomposerExpression(), inCondition);
|
||||||
pattern.getArgumentList().accept(this);
|
JetTuplePattern argumentList = pattern.getArgumentList();
|
||||||
|
if (argumentList != null) {
|
||||||
|
argumentList.accept(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class JetDecomposerPattern extends JetPattern {
|
|||||||
return findChildByClass(JetExpression.class);
|
return findChildByClass(JetExpression.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
public JetTuplePattern getArgumentList() {
|
public JetTuplePattern getArgumentList() {
|
||||||
return (JetTuplePattern) findChildByType(JetNodeTypes.DECOMPOSER_ARGUMENT_LIST);
|
return (JetTuplePattern) findChildByType(JetNodeTypes.DECOMPOSER_ARGUMENT_LIST);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -204,9 +204,11 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
ReceiverDescriptor receiver = new TransientReceiver(subjectType);
|
ReceiverDescriptor receiver = new TransientReceiver(subjectType);
|
||||||
JetType selectorReturnType = facade.getSelectorReturnType(receiver, null, decomposerExpression, context);
|
JetType selectorReturnType = facade.getSelectorReturnType(receiver, null, decomposerExpression, context);
|
||||||
|
|
||||||
result.set(checkPatternType(pattern.getArgumentList(), selectorReturnType == null
|
if (pattern.getArgumentList() != null) {
|
||||||
|
result.set(checkPatternType(pattern.getArgumentList(), selectorReturnType == null
|
||||||
? ErrorUtils.createErrorType("No type")
|
? ErrorUtils.createErrorType("No type")
|
||||||
: selectorReturnType, false, scopeToExtend, context));
|
: selectorReturnType, false, scopeToExtend, context));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user