summaryrefslogtreecommitdiff
path: root/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java')
-rw-r--r--plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java44
1 files changed, 15 insertions, 29 deletions
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java
index 69710a084904..f7778e0a89bc 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/VariablePassedAsArgumentExcludedVisitor.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2012 Dave Griffith, Bas Leijdekkers
+ * Copyright 2003-2014 Dave Griffith, Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,49 +44,35 @@ class VariablePassedAsArgumentExcludedVisitor extends JavaRecursiveElementVisito
}
@Override
- public void visitMethodCallExpression(@NotNull PsiMethodCallExpression call) {
+ public void visitCallExpression(PsiCallExpression callExpression) {
if (passed) {
return;
}
- super.visitMethodCallExpression(call);
- final PsiExpressionList argumentList = call.getArgumentList();
- final PsiExpression[] arguments = argumentList.getExpressions();
- for (PsiExpression argument : arguments) {
- if (!VariableAccessUtils.mayEvaluateToVariable(argument, variable, myBuilderPattern)) {
- continue;
- }
- final PsiMethod method = call.resolveMethod();
- if (method != null) {
- final PsiClass aClass = method.getContainingClass();
- if (aClass != null) {
- final String name = aClass.getQualifiedName();
- if (excludes.contains(name)) {
- continue;
- }
- }
- }
- passed = true;
- }
+ super.visitCallExpression(callExpression);
+ visitCall(callExpression);
}
@Override
- public void visitNewExpression(@NotNull PsiNewExpression newExpression) {
+ public void visitEnumConstant(PsiEnumConstant enumConstant) {
if (passed) {
return;
}
- super.visitNewExpression(newExpression);
- final PsiExpressionList argumentList = newExpression.getArgumentList();
+ super.visitEnumConstant(enumConstant);
+ visitCall(enumConstant);
+ }
+
+ private void visitCall(PsiCall call) {
+ final PsiExpressionList argumentList = call.getArgumentList();
if (argumentList == null) {
return;
}
- final PsiExpression[] arguments = argumentList.getExpressions();
- for (PsiExpression argument : arguments) {
+ for (PsiExpression argument : argumentList.getExpressions()) {
if (!VariableAccessUtils.mayEvaluateToVariable(argument, variable, myBuilderPattern)) {
continue;
}
- final PsiMethod constructor = newExpression.resolveConstructor();
- if (constructor != null) {
- final PsiClass aClass = constructor.getContainingClass();
+ final PsiMethod method = call.resolveMethod();
+ if (method != null) {
+ final PsiClass aClass = method.getContainingClass();
if (aClass != null) {
final String name = aClass.getQualifiedName();
if (excludes.contains(name)) {