diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnqualifiedMethodAccessInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnqualifiedMethodAccessInspection.java
index 85aa3ee7c603..f7086af1cd76 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnqualifiedMethodAccessInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/UnqualifiedMethodAccessInspection.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2006-2012 Bas Leijdekkers
+ * Copyright 2006-2016 Bas Leijdekkers
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -17,6 +17,8 @@ package com.siyeh.ig.style;
import com.intellij.codeInspection.CleanupLocalInspectionTool;
import com.intellij.psi.*;
+import com.intellij.psi.util.PsiTreeUtil;
+import com.intellij.psi.util.PsiUtil;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -70,9 +72,16 @@ public class UnqualifiedMethodAccessInspection extends BaseInspection implements
return;
}
final PsiClass containingClass = method.getContainingClass();
- if (containingClass instanceof PsiAnonymousClass) {
+ if (containingClass == null) {
return;
}
+ if (PsiUtil.isLocalOrAnonymousClass(containingClass)) {
+ final PsiClass expressionClass = PsiTreeUtil.getParentOfType(expression, PsiClass.class);
+ if (expressionClass == null || !expressionClass.equals(containingClass)) {
+ // qualified this expression not possible for anonymous or local class
+ return;
+ }
+ }
registerError(expression);
}
}
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_method_access/UnqualifiedMethodAccess.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_method_access/UnqualifiedMethodAccess.java
index 4d7b2baf00bc..c4e1087bb011 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_method_access/UnqualifiedMethodAccess.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/style/unqualified_method_access/UnqualifiedMethodAccess.java
@@ -14,6 +14,16 @@ public class UnqualifiedMethodAccess extends JPanel {
void foo(String s) {
this.foo();
+ class A {
+ void a() {
+ a();
+ new Object() {
+ void b() {
+ a();
+ }
+ };
+ }
+ }
}
void anonymous() {
@@ -22,6 +32,7 @@ public class UnqualifiedMethodAccess extends JPanel {
new Object() {
void foo() {
bar();
+ foo();
}
};
}