diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/CheckInitialized.java b/java/java-impl/src/com/intellij/codeInsight/completion/CheckInitialized.java index ab71b944ea51..f0c914de02ce 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/CheckInitialized.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/CheckInitialized.java @@ -69,8 +69,11 @@ class CheckInitialized implements ElementFilter { if (next instanceof PsiAssignmentExpression && parent == ((PsiAssignmentExpression)next).getLExpression()) { return Collections.emptySet(); } - if (parent instanceof PsiReferenceExpression && next instanceof PsiExpressionStatement) { - return Collections.emptySet(); + if (parent instanceof PsiJavaCodeReferenceElement) { + PsiStatement psiStatement = PsiTreeUtil.getParentOfType(parent, PsiStatement.class); + if (psiStatement != null && psiStatement.getTextRange().getStartOffset() == parent.getTextRange().getStartOffset()) { + return Collections.emptySet(); + } } parent = next; } diff --git a/java/java-tests/testData/codeInsight/completion/variables/SuggestVariablesInTypePosition.java b/java/java-tests/testData/codeInsight/completion/variables/SuggestVariablesInTypePosition.java new file mode 100644 index 000000000000..126130adeff6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/variables/SuggestVariablesInTypePosition.java @@ -0,0 +1,9 @@ +class A { + int myField; + int myField2; + A() { + myF initField(); + } + + int initField(){return 2;} +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/VariablesCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/VariablesCompletionTest.groovy index 518ff470bbf3..426414f245f6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/VariablesCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/VariablesCompletionTest.groovy @@ -177,6 +177,11 @@ public class VariablesCompletionTest extends LightFixtureCompletionTestCase { assertStringItems("preferencePolicy", "policy", "aPreferencePolicy"); } + public void testSuggestVariablesInTypePosition() { + configure(); + assertStringItems("myField", "myField2"); + } + public void configure() { configureByFile(FILE_PREFIX + getTestName(false) + ".java") }