mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
SortContentAction: support generic types in vararg: IDEA-185852
This commit is contained in:
@@ -186,11 +186,10 @@ public class SortContentAction extends PsiElementBaseIntentionAction {
|
||||
if (initializerExpression == null) return null;
|
||||
PsiExpression[] initializers = initializerExpression.getInitializers();
|
||||
if (initializers.length < MIN_EXPRESSION_COUNT) return null;
|
||||
PsiArrayType arrayType = tryCast(initializerExpression.getType(), PsiArrayType.class);
|
||||
if (arrayType == null) return null;
|
||||
PsiType componentType = arrayType.getComponentType();
|
||||
if (!isSortableExpressions(initializers, componentType)) return null;
|
||||
Comparator<PsiExpression> comparator = getComparator(componentType);
|
||||
PsiType type = initializerExpression.getInitializers()[0].getType();
|
||||
if (type == null) return null;
|
||||
if (!isSortableExpressions(initializers, type)) return null;
|
||||
Comparator<PsiExpression> comparator = getComparator(type);
|
||||
if (comparator == null) return null;
|
||||
if (isOrdered(initializers, comparator)) return null;
|
||||
return initializerExpression;
|
||||
@@ -241,11 +240,11 @@ public class SortContentAction extends PsiElementBaseIntentionAction {
|
||||
PsiParameter[] parameters = parameterList.getParameters();
|
||||
PsiExpression[] varargArguments = getVarargArguments(arguments, originElement, parameters);
|
||||
if(varargArguments == null) return null;
|
||||
PsiParameter varargParameter = parameters[parameters.length - 1];
|
||||
PsiEllipsisType ellipsisType = tryCast(varargParameter.getType(), PsiEllipsisType.class);
|
||||
if(ellipsisType == null) return null;
|
||||
if (!isSortableExpressions(varargArguments, ellipsisType.getComponentType())) return null;
|
||||
Comparator<PsiExpression> comparator = getComparator(ellipsisType.getComponentType());
|
||||
PsiExpression argument = varargArguments[0];
|
||||
PsiType type = argument.getType();
|
||||
if(type == null) return null;
|
||||
if (!isSortableExpressions(varargArguments, type)) return null;
|
||||
Comparator<PsiExpression> comparator = getComparator(type);
|
||||
if (comparator == null) return null;
|
||||
if(isOrdered(varargArguments, comparator)) return null;
|
||||
return new VarargContext(list, varargArguments);
|
||||
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Sort content" "true"
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
private void test() {
|
||||
List<String> names = Arrays.asList(
|
||||
"David",
|
||||
"John",
|
||||
"Richard",
|
||||
"Rose",
|
||||
"Samuel");
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
// "Sort content" "true"
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class Main {
|
||||
private void test() {
|
||||
List<String> names = Arrays.asList(
|
||||
"David",
|
||||
"Richard",
|
||||
"Samuel",
|
||||
"Rose",<caret>
|
||||
"John");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user