mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 17:20:55 +07:00
generics are not a part of the lookup string now
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
class MyClass {
|
||||
public void foo() {
|
||||
MyDD<String> d = new MyD<caret>x
|
||||
}
|
||||
}
|
||||
|
||||
class MyDD<T> {
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class A {{
|
||||
foo.Foo<String> f = new B<caret>
|
||||
}}
|
||||
@@ -16,21 +16,9 @@
|
||||
package com.intellij.codeInsight.completion;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.CodeInsightSettings;
|
||||
import com.intellij.codeInsight.lookup.Lookup;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.PsiTypeLookupItem;
|
||||
import com.intellij.codeInsight.template.SmartCompletionContextType;
|
||||
import com.intellij.codeInsight.template.Template;
|
||||
import com.intellij.codeInsight.template.TemplateContextType;
|
||||
import com.intellij.codeInsight.template.TemplateManager;
|
||||
import com.intellij.codeInsight.template.impl.TemplateImpl;
|
||||
import com.intellij.codeInsight.template.impl.TemplateSettings;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
import com.intellij.codeInsight.lookup.LookupElementPresentation;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class SmartType17CompletionTest extends LightFixtureCompletionTestCase {
|
||||
@@ -53,6 +41,13 @@ public class SmartType17CompletionTest extends LightFixtureCompletionTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testDiamondPresentation() {
|
||||
configureByFile("/" + getTestName(false) + ".java");
|
||||
LookupElementPresentation presentation = new LookupElementPresentation();
|
||||
myItems[0].renderElement(presentation);
|
||||
assertEquals("MyDD<>", presentation.getItemText());
|
||||
}
|
||||
|
||||
|
||||
private void doTest() throws Exception {
|
||||
configureByFile("/" + getTestName(false) + ".java");
|
||||
|
||||
@@ -5,9 +5,14 @@
|
||||
package com.intellij.codeInsight.completion;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.lookup.LookupElement;
|
||||
import com.intellij.codeInsight.lookup.LookupElementPresentation;
|
||||
import com.intellij.codeInsight.lookup.impl.LookupImpl;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.statistics.StatisticsManager;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SmartTypeCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
private static final String BASE_PATH = "/codeInsight/completion/smartTypeSorting";
|
||||
|
||||
@@ -132,16 +137,16 @@ public class SmartTypeCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
}
|
||||
|
||||
public void testExpectedInterfaceShouldGoFirst() throws Throwable {
|
||||
checkPreferredItems(0, "MyProcessor<Foo>", "Proc1<Foo>");
|
||||
checkPreferredItems(0, "MyProcessor", "Proc1");
|
||||
}
|
||||
|
||||
public void testStatisticsAffectsNonPreferableExpectedItems() throws Throwable {
|
||||
final LookupImpl lookup = invokeCompletion(getTestName(false) + ".java");
|
||||
assertPreferredItems(1, "List<Foo>", "AbstractList<Foo>", "AbstractSequentialList<Foo>", "ArrayList<Foo>");
|
||||
assertPreferredItems(1, "List", "AbstractList", "AbstractSequentialList", "ArrayList");
|
||||
incUseCount(lookup, 0);
|
||||
assertPreferredItems(1, "List<Foo>", "AbstractList<Foo>", "AbstractSequentialList<Foo>", "ArrayList<Foo>");
|
||||
assertPreferredItems(1, "List", "AbstractList", "AbstractSequentialList", "ArrayList");
|
||||
incUseCount(lookup, 0);
|
||||
assertPreferredItems(0, "List<Foo>", "AbstractList<Foo>", "AbstractSequentialList<Foo>", "ArrayList<Foo>");
|
||||
assertPreferredItems(0, "List", "AbstractList", "AbstractSequentialList", "ArrayList");
|
||||
}
|
||||
|
||||
public void testPreferNonRecursiveMethodParams() throws Throwable {
|
||||
@@ -239,6 +244,26 @@ public class SmartTypeCompletionOrderingTest extends CompletionSortingTestCase {
|
||||
checkPreferredItems(0, "foo", "boo", "doo", "hashCode");
|
||||
}
|
||||
|
||||
public void testErasureNotAffectingProximity() {
|
||||
myFixture.addClass("package foo; public interface Foo<T> {}");
|
||||
myFixture.addClass("package bar; public class Bar implements foo.Foo {}");
|
||||
myFixture.addClass("public class Bar<T> implements foo.Foo<T> {}");
|
||||
checkPreferredItems(0, "Bar", "Bar");
|
||||
|
||||
LookupElementPresentation presentation = new LookupElementPresentation();
|
||||
List<LookupElement> items = getLookup().getItems();
|
||||
|
||||
LookupElement first = items.get(0);
|
||||
assertEquals("Bar", ((PsiClass)first.getObject()).getQualifiedName());
|
||||
first.renderElement(presentation);
|
||||
assertEquals("Bar<String>", presentation.getItemText());
|
||||
|
||||
LookupElement second = items.get(1);
|
||||
assertEquals("bar.Bar", ((PsiClass)second.getObject()).getQualifiedName());
|
||||
second.renderElement(presentation);
|
||||
assertEquals("Bar", presentation.getItemText());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getBasePath() {
|
||||
return JavaTestUtil.getRelativeJavaTestDataPath() + BASE_PATH;
|
||||
|
||||
@@ -584,7 +584,7 @@ public class SmartTypeCompletionTest extends LightFixtureCompletionTestCase {
|
||||
|
||||
public void testSuggestAnythingWhenWildcardExpected() throws Throwable {
|
||||
configureByTestName();
|
||||
assertStringItems("X<java.lang.Object>", "Y", "Z<java.lang.Object>");
|
||||
assertStringItems("X", "Y", "Z");
|
||||
}
|
||||
|
||||
public void testNewVararg() throws Throwable {
|
||||
|
||||
Reference in New Issue
Block a user