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 fd5922a5e1c7..24a6ba005be0 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaCompletionContributor.java @@ -453,15 +453,16 @@ public final class JavaCompletionContributor extends CompletionContributor imple PrefixMatcher matcher = result.getPrefixMatcher(); PsiElement parent = position.getParent(); - if (new JavaKeywordCompletion(parameters, session, smart).addWildcardExtendsSuper(result, position)) { - result.stopHere(); - return; - } boolean mayCompleteReference = true; if (position instanceof PsiIdentifier) { addIdentifierVariants(parameters, position, result, session, matcher); + if (JavaMemberNameCompletionContributor.INSIDE_TYPE_PARAMS_PATTERN.accepts(position)) { + session.flushBatchItems(); + result.stopHere(); + return; + } Set expectedInfos = ContainerUtil.newHashSet(JavaSmartCompletionContributor.getExpectedTypes(parameters)); boolean shouldAddExpressionVariants = shouldAddExpressionVariants(parameters); 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 13097bf852ed..62d2b3b6259f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaKeywordCompletion.java @@ -265,6 +265,9 @@ public class JavaKeywordCompletion { return; } + if (addWildcardExtendsSuper()) { + return; + } addFinal(); addWhen(); boolean statementPosition = isStatementPosition(myPosition); @@ -496,13 +499,11 @@ public class JavaKeywordCompletion { return false; } - boolean addWildcardExtendsSuper(CompletionResultSet result, PsiElement position) { - if (JavaMemberNameCompletionContributor.INSIDE_TYPE_PARAMS_PATTERN.accepts(position)) { + private boolean addWildcardExtendsSuper() { + if (JavaMemberNameCompletionContributor.INSIDE_TYPE_PARAMS_PATTERN.accepts(myPosition)) { for (String keyword : ContainerUtil.ar(JavaKeywords.EXTENDS, JavaKeywords.SUPER)) { - if (myKeywordMatcher.isStartMatch(keyword)) { - LookupElement item = BasicExpressionCompletionContributor.createKeywordLookupItem(position, keyword); - result.addElement(new OverridableSpace(item, TailTypes.humbleSpaceBeforeWordType())); - } + LookupElement item = BasicExpressionCompletionContributor.createKeywordLookupItem(myPosition, keyword); + addKeyword(new OverridableSpace(item, TailTypes.humbleSpaceBeforeWordType())); } return true; }