diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java index fb9949bc7293..bea298445334 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/ConstructorInsertHandler.java @@ -53,7 +53,7 @@ class ConstructorInsertHandler implements InsertHandler= 0) length = i; + RangeMarker savedTail = context.getDocument().createRangeMarker(context.getTailOffset(), context.getTailOffset()); final int newOffset = addImportForClass(file, startOffset, startOffset + length, aClass); JavaCompletionUtil.shortenReference(file, newOffset); + assert savedTail.isValid(); + context.setTailOffset(savedTail.getStartOffset()); } else if (o instanceof PsiType){ PsiType type = ((PsiType)o).getDeepComponentType(); diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameInsertHandler.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameInsertHandler.java index ddb2bba025eb..330d638f03d6 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameInsertHandler.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaClassNameInsertHandler.java @@ -98,7 +98,7 @@ class JavaClassNameInsertHandler implements InsertHandler= 0); String docText = context.getDocument().getText(); - DefaultInsertHandler.addImportForItem(context.getFile(), context.getStartOffset(), item); + DefaultInsertHandler.addImportForItem(context, item); if (context.getTailOffset() < 0) { if (ApplicationManagerEx.getApplicationEx().isInternal()) { LOG.error("Tail offset degraded: " + context.getStartOffset() + "; " + docText); diff --git a/java/java-impl/src/com/intellij/codeInsight/lookup/PsiTypeLookupItem.java b/java/java-impl/src/com/intellij/codeInsight/lookup/PsiTypeLookupItem.java index 545172114b67..9b5e630302a5 100644 --- a/java/java-impl/src/com/intellij/codeInsight/lookup/PsiTypeLookupItem.java +++ b/java/java-impl/src/com/intellij/codeInsight/lookup/PsiTypeLookupItem.java @@ -37,7 +37,7 @@ public class PsiTypeLookupItem extends LookupItem { @Override public void handleInsert(InsertionContext context) { - DefaultInsertHandler.addImportForItem(context.getFile(), context.getStartOffset(), this); + DefaultInsertHandler.addImportForItem(context, this); super.handleInsert(context); } diff --git a/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf.java b/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf.java new file mode 100644 index 000000000000..2637f89d13e6 --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf.java @@ -0,0 +1,6 @@ +public class Bar { + { + if (2 != InpStrReaAaa) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf_after.java b/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf_after.java new file mode 100644 index 000000000000..6a0b1b1c0dbf --- /dev/null +++ b/java/java-tests/testData/codeInsight/completion/normal/ClassNameInsideIdentifierInIf_after.java @@ -0,0 +1,8 @@ +import java.io.InputStreamReader; + +public class Bar { + { + if (2 != InputStreamReaderAaa) { + } + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy index f2c1b2f641fb..cf30c5e4b8e0 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy +++ b/java/java-tests/testSrc/com/intellij/codeInsight/completion/NormalCompletionTest.groovy @@ -842,6 +842,12 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase { assertStringItems("myField1", "myField2"); } + public void testClassNameInsideIdentifierInIf() throws Throwable { + configure() + type '\n' + checkResult() + } + public void testSuggestMembersOfStaticallyImportedClasses() throws Exception { myFixture.addClass("""package foo; public class Foo {