mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
merge completion variants with same method erasures
This commit is contained in:
+19
-4
@@ -30,10 +30,9 @@ import com.intellij.psi.infos.CandidateInfo;
|
||||
import com.intellij.psi.scope.BaseScopeProcessor;
|
||||
import com.intellij.psi.scope.ElementClassHint;
|
||||
import com.intellij.psi.scope.JavaScopeProcessorEvent;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.PsiUtilCore;
|
||||
import com.intellij.psi.util.*;
|
||||
import gnu.trove.THashSet;
|
||||
import gnu.trove.TObjectHashingStrategy;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -50,7 +49,23 @@ public class JavaCompletionProcessor extends BaseScopeProcessor implements Eleme
|
||||
|
||||
private boolean myStatic = false;
|
||||
private PsiElement myDeclarationHolder = null;
|
||||
private final Set<Object> myResultNames = new THashSet<Object>();
|
||||
private final Set<Object> myResultNames = new THashSet<Object>(new TObjectHashingStrategy<Object>() {
|
||||
@Override
|
||||
public int computeHashCode(Object object) {
|
||||
if (object instanceof MethodSignature) {
|
||||
return MethodSignatureUtil.METHOD_PARAMETERS_ERASURE_EQUALITY.computeHashCode((MethodSignature)object);
|
||||
}
|
||||
return object.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o1, Object o2) {
|
||||
if (o1 instanceof MethodSignature && o2 instanceof MethodSignature) {
|
||||
return MethodSignatureUtil.METHOD_PARAMETERS_ERASURE_EQUALITY.equals((MethodSignature)o1, (MethodSignature)o2);
|
||||
}
|
||||
return o1.equals(o2);
|
||||
}
|
||||
});
|
||||
private final List<CompletionElement> myResults = new ArrayList<CompletionElement>();
|
||||
private final List<CompletionElement> myFilteredResults = new ArrayList<CompletionElement>();
|
||||
private final PsiElement myElement;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import java.util.*;
|
||||
abstract class GenericPanelControl {
|
||||
protected abstract void _performAction(List<?> rowVector);
|
||||
}
|
||||
|
||||
class WorkflowPanelControl extends GenericPanelControl {
|
||||
protected void _performAction(List rowVector) {
|
||||
}
|
||||
}
|
||||
|
||||
class WorkflowSubPanelControl extends WorkflowPanelControl {
|
||||
protected void _performAction(List rowVector) {
|
||||
super._<caret>
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import java.util.*;
|
||||
abstract class GenericPanelControl {
|
||||
protected abstract void _performAction(List<?> rowVector);
|
||||
}
|
||||
|
||||
class WorkflowPanelControl extends GenericPanelControl {
|
||||
protected void _performAction(List rowVector) {
|
||||
}
|
||||
}
|
||||
|
||||
class WorkflowSubPanelControl extends WorkflowPanelControl {
|
||||
protected void _performAction(List rowVector) {
|
||||
super._performAction();
|
||||
}
|
||||
}
|
||||
+5
@@ -323,6 +323,11 @@ public class NormalCompletionTest extends LightFixtureCompletionTestCase {
|
||||
checkResultByFile("MethodWithLeftParTailType2_after.java");
|
||||
}
|
||||
|
||||
public void testSuperErasure() throws Exception {
|
||||
configureByFile("SuperErasure.java");
|
||||
checkResultByFile("SuperErasure_after.java");
|
||||
}
|
||||
|
||||
public void testMethodWithLeftParTailTypeNoPairBrace() throws Exception {
|
||||
final boolean old = CodeInsightSettings.getInstance().AUTOINSERT_PAIR_BRACKET;
|
||||
CodeInsightSettings.getInstance().AUTOINSERT_PAIR_BRACKET = false;
|
||||
|
||||
Reference in New Issue
Block a user