generics are not a part of the lookup string now

This commit is contained in:
peter
2011-04-19 17:03:38 +02:00
parent adace47e52
commit 709bb85c92
12 changed files with 164 additions and 178 deletions

View File

@@ -0,0 +1,8 @@
class MyClass {
public void foo() {
MyDD<String> d = new MyD<caret>x
}
}
class MyDD<T> {
}

View File

@@ -0,0 +1,3 @@
class A {{
foo.Foo<String> f = new B<caret>
}}

View File

@@ -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");

View File

@@ -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;

View File

@@ -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 {