JetDecomposerPattern.getArgumentList() may return null

This commit is contained in:
Stepan Koltsov
2012-01-25 22:19:53 +04:00
parent 3a09f69f9b
commit bbbddf1c83
3 changed files with 8 additions and 2 deletions
@@ -124,7 +124,10 @@ public class JetControlFlowProcessor {
@Override
public void visitDecomposerPattern(JetDecomposerPattern pattern) {
value(pattern.getDecomposerExpression(), inCondition);
pattern.getArgumentList().accept(this);
JetTuplePattern argumentList = pattern.getArgumentList();
if (argumentList != null) {
argumentList.accept(this);
}
}
@Override
@@ -18,6 +18,7 @@ public class JetDecomposerPattern extends JetPattern {
return findChildByClass(JetExpression.class);
}
@Nullable
public JetTuplePattern getArgumentList() {
return (JetTuplePattern) findChildByType(JetNodeTypes.DECOMPOSER_ARGUMENT_LIST);
}
@@ -204,9 +204,11 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor {
ReceiverDescriptor receiver = new TransientReceiver(subjectType);
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")
: selectorReturnType, false, scopeToExtend, context));
}
}
}