InlineStreamMapAction: support parenthesized chain

This commit is contained in:
Tagir Valeev
2018-07-06 15:13:12 +07:00
parent 5639829e97
commit b0cc9d68d4
2 changed files with 5 additions and 8 deletions
@@ -84,13 +84,10 @@ public class InlineStreamMapAction extends PsiElementBaseIntentionAction {
@Nullable
private static PsiMethodCallExpression getNextExpressionToMerge(PsiMethodCallExpression methodCallExpression) {
PsiElement parent = methodCallExpression.getParent();
if(!(parent instanceof PsiReferenceExpression)) return null;
PsiElement gParent = parent.getParent();
if(!(gParent instanceof PsiMethodCallExpression)) return null;
String nextName = ((PsiReferenceExpression)parent).getReferenceName();
PsiMethodCallExpression nextCall = (PsiMethodCallExpression)gParent;
if(nextName == null || !NEXT_METHODS.contains(nextName) || translateName(methodCallExpression, nextCall) == null) return null;
PsiMethodCallExpression nextCall = ExpressionUtils.getCallForQualifier(methodCallExpression);
if (nextCall == null) return null;
String nextName = nextCall.getMethodExpression().getReferenceName();
if (nextName == null || !NEXT_METHODS.contains(nextName) || translateName(methodCallExpression, nextCall) == null) return null;
PsiExpressionList argumentList = (nextCall).getArgumentList();
PsiExpression[] expressions = argumentList.getExpressions();
if(expressions.length == 0) {
@@ -3,6 +3,6 @@ import java.util.List;
public class Main {
public static void test(List<CharSequence> list) {
list.stream().map(cs -> cs.subSequence(1, 5)).ma<caret>p(CharSequence::length).forEach(System.out::println);
((list.stream().map(cs -> cs.subSequence(1, 5))).ma<caret>p(CharSequence::length)).forEach(System.out::println);
}
}