disable lambda -> method ref for qualified new expressions (IDEA-183613)

there is no place where qualifier can be added for constructor reference
This commit is contained in:
Anna.Kozlova
2017-12-13 14:10:59 +01:00
parent 1d6641db80
commit 4d4eefc1ab
2 changed files with 18 additions and 1 deletions
@@ -0,0 +1,15 @@
// "Replace lambda with method reference" "false"
import java.util.function.*;
class Outer {
private static Outer outer = new Outer();
private static void test() {
Function<String, InstanceClass> supplier = s -> outer.n<caret>ew Inner(s);
}
class Inner {
Inner(String s) { }
}
}
@@ -251,7 +251,9 @@ public class LambdaCanBeMethodReferenceInspection extends AbstractBaseJavaLocalI
return null;
}
if (expression instanceof PsiNewExpression) {
return new MethodReferenceCandidate(expression, checkQualifier(((PsiNewExpression)expression).getQualifier()), true);
PsiExpression qualifier = ((PsiNewExpression)expression).getQualifier();
if (qualifier != null) return null;
return new MethodReferenceCandidate(expression, true, true);
}
else if (expression instanceof PsiMethodCallExpression) {
return new MethodReferenceCandidate(expression,