[groovy] preserve order while filtering inapplicable candidates in MethodResolverProcessor

This commit is contained in:
Daniil Ovchinnikov
2015-09-25 15:07:17 +03:00
parent 88dbbba772
commit fcdb640ec9
2 changed files with 2 additions and 3 deletions
@@ -21,7 +21,6 @@ import com.intellij.psi.scope.JavaScopeProcessorEvent;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.hash.HashSet;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult;
@@ -153,7 +152,7 @@ public class MethodResolverProcessor extends ResolverProcessor implements GrMeth
private Set<GroovyResolveResult> filterCorrectParameterCount(Set<GroovyResolveResult> candidates) {
if (myArgumentTypes == null) return candidates;
Set<GroovyResolveResult> result = new HashSet<GroovyResolveResult>();
Set<GroovyResolveResult> result = ContainerUtil.newLinkedHashSet();
for (GroovyResolveResult candidate : candidates) {
final PsiElement element = candidate.getElement();
if (element instanceof PsiMethod && ((PsiMethod)element).getParameterList().getParametersCount() == myArgumentTypes.length) {
@@ -815,7 +815,7 @@ void bug(Collection<String> foo, Collection<String> bar) {
testHighlighting('''\
print 1 + 2
print 4 <warning descr="'plus' in 'org.codehaus.groovy.runtime.StringGroovyMethods' cannot be applied to '(java.util.ArrayList)'">+</warning> new ArrayList()
print 4 <warning descr="'plus' in 'org.codehaus.groovy.runtime.DefaultGroovyMethods' cannot be applied to '(java.util.ArrayList)'">+</warning> new ArrayList()
''')
}
}