LambdaRefactoringUtil: consider more method references side effect free

This commit is contained in:
Bas Leijdekkers
2017-10-03 15:57:12 +02:00
parent f5ce077016
commit fed0d37167
2 changed files with 3 additions and 11 deletions
@@ -407,14 +407,6 @@ public class LambdaRefactoringUtil {
*/
public static boolean canConvertToLambdaWithoutSideEffects(PsiMethodReferenceExpression methodReferenceExpression) {
final PsiExpression qualifierExpression = methodReferenceExpression.getQualifierExpression();
if (qualifierExpression == null) {
PsiElement resolved = methodReferenceExpression.resolve();
if (resolved == null) return false;
PsiClass arrayClass = JavaPsiFacade.getInstance(methodReferenceExpression.getProject())
.getElementFactory()
.getArrayClass(PsiUtil.getLanguageLevel(methodReferenceExpression));
return resolved == arrayClass;
}
return !SideEffectChecker.mayHaveSideEffects(qualifierExpression);
return qualifierExpression == null || !SideEffectChecker.mayHaveSideEffects(qualifierExpression);
}
}
@@ -76,7 +76,7 @@ public class MethodRefCanBeReplacedWithLambdaFixTest extends IGQuickFixesTestCas
}
public void testNewRefsInference() {
doTest(myDefaultHint + " (side effects)");
doTest(myDefaultHint);
}
public void testNewRefsInference1() {
@@ -108,7 +108,7 @@ public class MethodRefCanBeReplacedWithLambdaFixTest extends IGQuickFixesTestCas
}
public void testArrayMethodRef() {
doTest(myDefaultHint + " (side effects)");
doTest(myDefaultHint );
}
public void testArrayConstructorRefUniqueParamName() {