From 36cccb5ced5ae0cff54c397052eb16a7cecae948 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 17 Mar 2016 14:08:51 +0100 Subject: [PATCH] IG: do not suggest qualified this expression on method of local class --- .../ig/style/UnqualifiedMethodAccessInspection.java | 13 +++++++++++-- .../UnqualifiedMethodAccess.java | 11 +++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) 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(); } }; }