mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ExpressionUtils#getCallForQualifier extracted
This commit is contained in:
+3
-5
@@ -362,11 +362,9 @@ public class StringConcatenationInLoopsInspection extends BaseInspection {
|
||||
if(assignment.getOperationTokenType().equals(JavaTokenType.PLUSEQ)) return;
|
||||
}
|
||||
}
|
||||
if(parent instanceof PsiReferenceExpression &&
|
||||
((PsiReferenceExpression)parent).getQualifierExpression() == ref &&
|
||||
parent.getParent() instanceof PsiMethodCallExpression) {
|
||||
PsiMethodCallExpression call = (PsiMethodCallExpression)parent.getParent();
|
||||
replaceInCallQualifier(variable, results, call, ct);
|
||||
PsiMethodCallExpression methodCallExpression = ExpressionUtils.getCallForQualifier(ref);
|
||||
if(methodCallExpression != null) {
|
||||
replaceInCallQualifier(variable, results, methodCallExpression, ct);
|
||||
return;
|
||||
}
|
||||
if(parent instanceof PsiExpressionList && parent.getParent() instanceof PsiMethodCallExpression) {
|
||||
|
||||
+22
@@ -841,4 +841,26 @@ public class ExpressionUtils {
|
||||
expression = PsiUtil.skipParenthesizedExprDown(expression);
|
||||
return expression instanceof PsiReferenceExpression && ((PsiReferenceExpression)expression).isReferenceTo(variable);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a method call expression for the supplied qualifier
|
||||
*
|
||||
* @param qualifier for method call
|
||||
* @return a method call expression or null if the supplied expression is not a method call qualifier
|
||||
*/
|
||||
@Contract(value = "null -> null", pure = true)
|
||||
public static PsiMethodCallExpression getCallForQualifier(PsiExpression qualifier) {
|
||||
if(qualifier == null) return null;
|
||||
PsiElement parent = PsiUtil.skipParenthesizedExprUp(qualifier.getParent());
|
||||
if(parent instanceof PsiReferenceExpression) {
|
||||
PsiReferenceExpression methodExpression = (PsiReferenceExpression)parent;
|
||||
if(PsiTreeUtil.isAncestor(methodExpression.getQualifierExpression(), qualifier, false)) {
|
||||
PsiElement gParent = methodExpression.getParent();
|
||||
if (gParent instanceof PsiMethodCallExpression) {
|
||||
return (PsiMethodCallExpression)gParent;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user