NPE on incomplete code from EA

This commit is contained in:
Svetlana Isakova
2012-04-05 20:12:14 +04:00
parent ca7ff2e2e4
commit 8d5965649b
2 changed files with 3 additions and 1 deletions
@@ -277,10 +277,11 @@ public class Pseudocode {
return visited; return visited;
} }
private void traverseNextInstructions(Instruction instruction, Set<Instruction> visited) { private void traverseNextInstructions(@NotNull Instruction instruction, @NotNull Set<Instruction> visited) {
if (visited.contains(instruction)) return; if (visited.contains(instruction)) return;
visited.add(instruction); visited.add(instruction);
for (Instruction nextInstruction : instruction.getNextInstructions()) { for (Instruction nextInstruction : instruction.getNextInstructions()) {
if (nextInstruction == null) continue; //todo it might be null on incomplete code
traverseNextInstructions(nextInstruction, visited); traverseNextInstructions(nextInstruction, visited);
} }
} }
@@ -235,6 +235,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito
JetExpression right = expression.getRight(); JetExpression right = expression.getRight();
if (left instanceof JetArrayAccessExpression) { if (left instanceof JetArrayAccessExpression) {
JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left; JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left;
if (right == null) return null;
JetType assignmentType = basic.resolveArrayAccessSetMethod(arrayAccessExpression, right, context.replaceScope(scope), context.trace); JetType assignmentType = basic.resolveArrayAccessSetMethod(arrayAccessExpression, right, context.replaceScope(scope), context.trace);
basic.checkLValue(context.trace, arrayAccessExpression); basic.checkLValue(context.trace, arrayAccessExpression);
return checkAssignmentType(assignmentType, expression, contextWithExpectedType); return checkAssignmentType(assignmentType, expression, contextWithExpectedType);