diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/guess/impl/GuessManagerImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/guess/impl/GuessManagerImpl.java index e128b417c726..daf3c74db933 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/guess/impl/GuessManagerImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/guess/impl/GuessManagerImpl.java @@ -174,13 +174,16 @@ public class GuessManagerImpl extends GuessManager { } } if (place == null) return false; + PsiType type = place.getType(); + if (type == null) return false; final int start = place.getTextRange().getStartOffset(); class Visitor extends JavaRecursiveElementWalkingVisitor { public boolean hasInteresting; @Override public void visitAssignmentExpression(PsiAssignmentExpression expression) { - if (ExpressionTypeMemoryState.EXPRESSION_HASHING_STRATEGY.equals(expression.getLExpression(), place)) { + if (ExpressionTypeMemoryState.EXPRESSION_HASHING_STRATEGY.equals(expression.getLExpression(), place) && + expression.getRExpression() != null && !type.equals(expression.getRExpression().getType())) { hasInteresting = true; stopWalking(); } @@ -189,7 +192,8 @@ public class GuessManagerImpl extends GuessManager { @Override public void visitLocalVariable(PsiLocalVariable variable) { - if (variable.getInitializer() != null && ExpressionUtils.isReferenceTo(place, variable)) { + if (variable.getInitializer() != null && ExpressionUtils.isReferenceTo(place, variable) && + !type.equals(variable.getInitializer().getType())) { hasInteresting = true; stopWalking(); }