mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-67951 Suggest comparator type in Collections.sort()
This commit is contained in:
@@ -302,17 +302,19 @@ public class CodeInsightUtil {
|
||||
|
||||
return ApplicationManager.getApplication().runReadAction(new Computable<Boolean>() {
|
||||
public Boolean compute() {
|
||||
if (!context.isValid() || !inheritor.isValid() || !facade.getResolveHelper().isAccessible(inheritor, context, null)) return true;
|
||||
if (!context.isValid() || !inheritor.isValid() || !facade.getResolveHelper().isAccessible(inheritor, context, null))
|
||||
return true;
|
||||
|
||||
if(inheritor.getQualifiedName() == null && !manager.areElementsEquivalent(inheritor.getContainingFile(), context.getContainingFile().getOriginalFile())){
|
||||
if (inheritor.getQualifiedName() == null &&
|
||||
!manager.areElementsEquivalent(inheritor.getContainingFile(), context.getContainingFile().getOriginalFile())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (JavaCompletionUtil.isInExcludedPackage(inheritor)) return true;
|
||||
|
||||
PsiSubstitutor superSubstitutor = TypeConversionUtil.getClassSubstitutor(baseClass, inheritor, PsiSubstitutor.EMPTY);
|
||||
if(superSubstitutor == null) return true;
|
||||
if(getRawSubtypes){
|
||||
if (superSubstitutor == null) return true;
|
||||
if (getRawSubtypes) {
|
||||
result.add(createType(inheritor, facade.getElementFactory().createRawSubstitutor(inheritor), arrayDim));
|
||||
return true;
|
||||
}
|
||||
@@ -322,7 +324,10 @@ public class CodeInsightUtil {
|
||||
for (PsiTypeParameter baseParameter : PsiUtil.typeParametersIterable(baseClass)) {
|
||||
final PsiType substituted = superSubstitutor.substitute(baseParameter);
|
||||
PsiType arg = baseSubstitutor.substitute(baseParameter);
|
||||
if (arg instanceof PsiWildcardType) arg = ((PsiWildcardType)arg).getExtendsBound();
|
||||
if (arg instanceof PsiWildcardType) {
|
||||
PsiType bound = ((PsiWildcardType)arg).getBound();
|
||||
arg = bound != null ? bound : ((PsiWildcardType)arg).getExtendsBound();
|
||||
}
|
||||
PsiType substitution = resolveHelper.getSubstitutionForTypeParameter(inheritorParameter,
|
||||
substituted,
|
||||
arg,
|
||||
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
|
||||
public class Foo {
|
||||
private List<String> myList;
|
||||
|
||||
private void sort() {
|
||||
Collections.sort(myList, new Comparator<String>() {
|
||||
@Override
|
||||
public int compare(String o1, String o2) {
|
||||
<selection>return 0; //To change body of implemented methods use File | Settings | File Templates.</selection>
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
|
||||
public class Foo {
|
||||
private List<String> myList;
|
||||
|
||||
private void sort() {
|
||||
Collections.sort(myList, new Comparator<caret>);
|
||||
}
|
||||
}
|
||||
+7
@@ -11,6 +11,7 @@ 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.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettings;
|
||||
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
|
||||
@@ -984,6 +985,12 @@ public class SmartTypeCompletionTest extends LightFixtureCompletionTestCase {
|
||||
assertStringItems("Bar", "Goo");
|
||||
}
|
||||
|
||||
public void testNoWrongSubstitutorFromStats() throws Throwable {
|
||||
doTest();
|
||||
FileDocumentManager.getInstance().saveDocument(myFixture.getEditor().getDocument());
|
||||
doTest(); // stats are changed now
|
||||
}
|
||||
|
||||
public void testCommonPrefixWithSelection() throws Throwable {
|
||||
doItemTest();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user