mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
stream api: fix primitive boxing (IDEA-151494)
This commit is contained in:
+7
-1
@@ -508,7 +508,13 @@ public class StreamApiMigrationInspection extends BaseJavaBatchLocalInspectionTo
|
||||
iteration +=".map(";
|
||||
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
|
||||
final PsiClass functionClass = psiFacade.findClass("java.util.function.Function", GlobalSearchScope.allScope(project));
|
||||
final PsiClassType functionalInterfaceType = functionClass != null ? psiFacade.getElementFactory().createType(functionClass, parameter.getType(), expression.getType()) : null;
|
||||
final PsiType[] paramTypes = {parameter.getType(), expression.getType()};
|
||||
for (int i = 0; i < paramTypes.length; i++) {
|
||||
if (paramTypes[i] instanceof PsiPrimitiveType) {
|
||||
paramTypes[i] = ((PsiPrimitiveType)paramTypes[i]).getBoxedType(expression);
|
||||
}
|
||||
}
|
||||
final PsiClassType functionalInterfaceType = functionClass != null ? psiFacade.getElementFactory().createType(functionClass, paramTypes) : null;
|
||||
final PsiCallExpression toConvertCall = LambdaCanBeMethodReferenceInspection
|
||||
.canBeMethodReferenceProblem(expression, new PsiParameter[]{parameter}, functionalInterfaceType);
|
||||
final String methodReferenceText = LambdaCanBeMethodReferenceInspection.createMethodReferenceText(toConvertCall, functionalInterfaceType, new PsiParameter[]{parameter});
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
// "Replace with collect" "true"
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
class Sample {
|
||||
public void some(List<String> from, List<Integer> to) {
|
||||
to.addAll(from.stream().map(String::length).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// "Replace with collect" "true"
|
||||
import java.util.List;
|
||||
|
||||
class Sample {
|
||||
public void some(List<String> from, List<Integer> to) {
|
||||
for (String key : fr<caret>om) {
|
||||
to.add(key.length());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user