by-instance equality in lookup

This commit is contained in:
peter
2011-04-26 14:16:41 +02:00
parent 2df10ca44a
commit c55c311beb
2 changed files with 21 additions and 2 deletions

View File

@@ -735,7 +735,7 @@ public class Bar {
assert !lookup
}
public void testExplicitlyAutocompletionAfterAutoPopup() {
public void testExplicitAutocompletionAfterAutoPopup() {
myFixture.configureByText 'a.java', 'class Foo <caret>'
type 'ext'
@@ -746,5 +746,22 @@ public class Bar {
myFixture.checkResult 'class Foo extends <caret>'
}
public void testExplicitMultipleVariantCompletionAfterAutoPopup() {
myFixture.configureByText 'a.java', 'class Foo {<caret>}'
type 'pr'
CompletionAutoPopupHandler.ourTestingAutopopup = false
edt {
myFixture.completeBasic()
}
myFixture.checkResult 'class Foo {pr<caret>}'
lookup.items.each {
lookup.list.cellRenderer.getListCellRendererComponent(lookup.list, it, 0, false, false)
}
assert myFixture.lookupElementStrings == ['private', 'protected']
}
}

View File

@@ -64,6 +64,7 @@ import com.intellij.util.containers.ConcurrentHashMap;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.ui.AsyncProcessIcon;
import com.intellij.util.ui.ButtonlessScrollBarUI;
import gnu.trove.THashSet;
import gnu.trove.TObjectHashingStrategy;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -382,7 +383,8 @@ public class LookupImpl extends LightweightHint implements LookupEx, Disposable
final List<LookupElement> items = matchingItems(snapshot);
if (items.equals(getItems())) {
List<LookupElement> oldItems = getItems();
if (oldItems.size() == items.size() && new THashSet<LookupElement>(items, TObjectHashingStrategy.IDENTITY).containsAll(oldItems)) {
return;
}