StreamRefactoringUtil#isRefactoringCandidate disable if method reference is not resolved

This commit is contained in:
Tagir Valeev
2018-09-19 12:20:47 +07:00
parent 5d8e5ddc92
commit 65049765b0
2 changed files with 11 additions and 1 deletions

View File

@@ -33,7 +33,8 @@ public class StreamRefactoringUtil {
return lambdaExpression.getParameterList().getParametersCount() == 1 &&
(!requireExpressionLambda || LambdaUtil.extractSingleExpressionFromBody(lambdaExpression.getBody()) != null);
} else if(expression instanceof PsiMethodReferenceExpression) {
return LambdaRefactoringUtil.canConvertToLambdaWithoutSideEffects((PsiMethodReferenceExpression)expression);
PsiMethodReferenceExpression methodRef = (PsiMethodReferenceExpression)expression;
return methodRef.resolve() != null && LambdaRefactoringUtil.canConvertToLambdaWithoutSideEffects(methodRef);
}
return false;
}

View File

@@ -0,0 +1,9 @@
// "Inline 'map' body into the next 'map' call" "false"
import java.util.List;
import java.util.stream.IntStream;
public class Main {
public static void test(List<Foo> list) {
list.stream().<caret>map(Foo::getBar).map(bar -> bar.getID());
}
}