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 @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);
} }
@@ -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));
}
} }
} }