diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java index 4860f777225..5e754fb0d0f 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetCompletionContributor.java @@ -264,8 +264,18 @@ public class JetCompletionContributor extends CompletionContributor { if (element.getParent() instanceof JetSimpleNameExpression) { JetSimpleNameExpression nameExpression = (JetSimpleNameExpression)element.getParent(); - // Top level completion should be executed for simple which is not in qualified expression - return (PsiTreeUtil.getParentOfType(nameExpression, JetQualifiedExpression.class) == null); + // Top level completion should be executed for simple name which is not in qualified expression + if (PsiTreeUtil.getParentOfType(nameExpression, JetQualifiedExpression.class) != null) { + return false; + } + + // Don't call top level completion in qualified named position of user type + PsiElement parent = nameExpression.getParent(); + if (parent instanceof JetUserType && ((JetUserType) parent).getQualifier() != null) { + return false; + } + + return true; } } diff --git a/idea/testData/completion/basic/NoTopLevelCompletionInQualifiedUserTypes.kt b/idea/testData/completion/basic/NoTopLevelCompletionInQualifiedUserTypes.kt new file mode 100644 index 00000000000..b5576b5f492 --- /dev/null +++ b/idea/testData/completion/basic/NoTopLevelCompletionInQualifiedUserTypes.kt @@ -0,0 +1,3 @@ +class Test : java.lang.A + +// ABSENT: Annotation \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java index e46e72d3edf..194e53bab08 100644 --- a/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java +++ b/idea/tests/org/jetbrains/jet/completion/JetBasicCompletionTest.java @@ -172,6 +172,10 @@ public class JetBasicCompletionTest extends JetCompletionTestBase { doTest(); } + public void testNoTopLevelCompletionInQualifiedUserTypes() { + doTest(); + } + public void testOnlyScopedClassesWithoutExplicit() { doTest(); }