diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java index ce162cc43e6..47dcbea39ea 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/pseudocode/Pseudocode.java @@ -277,10 +277,11 @@ public class Pseudocode { return visited; } - private void traverseNextInstructions(Instruction instruction, Set visited) { + private void traverseNextInstructions(@NotNull Instruction instruction, @NotNull Set visited) { if (visited.contains(instruction)) return; visited.add(instruction); for (Instruction nextInstruction : instruction.getNextInstructions()) { + if (nextInstruction == null) continue; //todo it might be null on incomplete code traverseNextInstructions(nextInstruction, visited); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java index 0d1774e4e5c..633fdeee37f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java @@ -235,6 +235,7 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito JetExpression right = expression.getRight(); if (left instanceof JetArrayAccessExpression) { JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left; + if (right == null) return null; JetType assignmentType = basic.resolveArrayAccessSetMethod(arrayAccessExpression, right, context.replaceScope(scope), context.trace); basic.checkLValue(context.trace, arrayAccessExpression); return checkAssignmentType(assignmentType, expression, contextWithExpectedType);