LambdaCanBeMethodReferenceInspection: support parenthesized call arguments

This commit is contained in:
Tagir Valeev
2018-07-05 13:20:39 +07:00
parent 1f87111c97
commit 52053135e8
2 changed files with 4 additions and 10 deletions

View File

@@ -8,6 +8,6 @@ class MyTest2<X> {
}
public static void main(String[] args) {
I<String> s = (z) -> new MyTe<caret>st2<String>(z);
I<String> s = (z) -> new MyTe<caret>st2<String>((z));
}
}

View File

@@ -20,7 +20,6 @@ import com.intellij.util.ArrayUtil;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.containers.ContainerUtil;
import com.siyeh.ig.psiutils.ExpressionUtils;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -137,7 +136,7 @@ public class LambdaCanBeMethodReferenceInspection extends AbstractBaseJavaLocalI
final PsiExpression[] dims = ((PsiNewExpression)callExpression).getArrayDimensions();
if (dims.length == 1 && parameters.length == 1){
if (!resolvesToParameter(dims[0], parameters[0])) {
if (!ExpressionUtils.isReferenceTo(dims[0], parameters[0])) {
return null;
}
}
@@ -209,7 +208,7 @@ public class LambdaCanBeMethodReferenceInspection extends AbstractBaseJavaLocalI
}
for (int i = 0; i < expressions.length; i++) {
if (!resolvesToParameter(expressions[i], parameters[i + offset])) {
if (!ExpressionUtils.isReferenceTo(expressions[i], parameters[i + offset])) {
return false;
}
}
@@ -235,12 +234,7 @@ public class LambdaCanBeMethodReferenceInspection extends AbstractBaseJavaLocalI
return true;
}
return resolvesToParameter(qualifier, parameters[0]);
}
@Contract("null, _ -> false")
private static boolean resolvesToParameter(PsiExpression expression, PsiVariable parameter) {
return expression instanceof PsiReferenceExpression && ((PsiReferenceExpression)expression).resolve() == parameter;
return ExpressionUtils.isReferenceTo(qualifier, parameters[0]);
}
@Nullable