mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't suggest inaccessible qualifiers when chain-completing a java method reference (IDEA-217955)
GitOrigin-RevId: 78fc63c40948e6873279d6fe4c923bf3113a8b2e
This commit is contained in:
committed by
intellij-monorepo-bot
parent
9a3bace650
commit
a04504dddc
@@ -20,6 +20,7 @@ import com.intellij.codeInsight.completion.impl.BetterPrefixMatcher;
|
||||
import com.intellij.codeInsight.completion.impl.CamelHumpMatcher;
|
||||
import com.intellij.codeInsight.lookup.AutoCompletionPolicy;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.filters.ElementFilter;
|
||||
@@ -154,8 +155,12 @@ public class JavaNoVariantsDelegator extends CompletionContributor {
|
||||
Set<LookupElement> plainVariants =
|
||||
JavaSmartCompletionContributor.completeReference(qualifier, qualifier, filter, true, true, parameters, qMatcher);
|
||||
|
||||
for (PsiClass aClass : PsiShortNamesCache.getInstance(qualifier.getProject()).getClassesByName(referenceName, qualifier.getResolveScope())) {
|
||||
plainVariants.add(JavaClassNameCompletionContributor.createClassLookupItem(aClass, true));
|
||||
Project project = qualifier.getProject();
|
||||
PsiResolveHelper helper = JavaPsiFacade.getInstance(project).getResolveHelper();
|
||||
for (PsiClass aClass : PsiShortNamesCache.getInstance(project).getClassesByName(referenceName, qualifier.getResolveScope())) {
|
||||
if (helper.isAccessible(aClass, qualifier, null)) {
|
||||
plainVariants.add(JavaClassNameCompletionContributor.createClassLookupItem(aClass, true));
|
||||
}
|
||||
}
|
||||
|
||||
if (!plainVariants.isEmpty()) {
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
class Test2 {
|
||||
void test() {
|
||||
Function<Map.Entry<String, String>, String> fn = Entry::getKe<caret>x
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -350,6 +350,13 @@ class Test88 {
|
||||
myFixture.assertPreferredCompletionItems 0, 'Strings::goo'
|
||||
}
|
||||
|
||||
void testOnlyAccessibleClassesInChainedMethodReference() {
|
||||
configureByTestName()
|
||||
def p = LookupElementPresentation.renderElement(assertOneElement(myFixture.lookupElements))
|
||||
assert p.itemText == 'Entry::getKey'
|
||||
assert p.tailText.contains(' java.util.Map')
|
||||
}
|
||||
|
||||
void testPreferVariableToLambda() {
|
||||
configureByTestName()
|
||||
myFixture.assertPreferredCompletionItems 0, 'output', 'out -> '
|
||||
|
||||
Reference in New Issue
Block a user