diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java index 57928f7bbf31..2978747bc591 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -134,6 +134,8 @@ public final class JavaCompletionContributor extends CompletionContributor imple private static final ElementPattern IN_VARIABLE_TYPE = psiElement() .withParents(PsiJavaCodeReferenceElement.class, PsiTypeElement.class, PsiDeclarationStatement.class) .afterLeaf(psiElement().inside(psiAnnotation())); + private static final ElementPattern TOP_LEVEL_VAR_IN_MODULE = psiElement().withSuperParent(3, PsiJavaFile.class) + .inVirtualFile(virtualFile().withName("module-info.java")); /** * @param position completion invocation position @@ -740,6 +742,7 @@ public final class JavaCompletionContributor extends CompletionContributor imple Set expectedTypes, Condition nameCondition) { PsiElement position = parameters.getPosition(); + if (TOP_LEVEL_VAR_IN_MODULE.accepts(position)) return Collections.emptyList(); ElementFilter filter = getReferenceFilter(position); if (filter == null) return Collections.emptyList(); if (parameters.getInvocationCount() <= 1 && JavaClassNameCompletionContributor.AFTER_NEW.accepts(position)) { diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java index 6895183a65ac..6eecaa518563 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -1200,7 +1200,7 @@ public class JavaKeywordCompletion { } private void addModuleKeywords() { - PsiElement context = PsiTreeUtil.skipParentsOfType(myPosition.getParent(), PsiErrorElement.class); + PsiElement context = PsiTreeUtil.skipParentsOfType(myPosition.getParent(), PsiErrorElement.class, PsiJavaCodeReferenceElement.class, PsiTypeElement.class); PsiElement prevElement = PsiTreeUtil.skipWhitespacesAndCommentsBackward(myPosition.getParent()); if (context instanceof PsiJavaFile && !(prevElement instanceof PsiJavaModule) || context instanceof PsiImportList) {