diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/CanBeStaticVisitor.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/CanBeStaticVisitor.java index 4dc99003a919..7459f2493953 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/CanBeStaticVisitor.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/performance/CanBeStaticVisitor.java @@ -29,11 +29,14 @@ class CanBeStaticVisitor extends JavaRecursiveElementWalkingVisitor { } } + @Override + public void visitThisExpression(@NotNull PsiThisExpression expression) { + canBeStatic = false; + stopWalking(); + } + @Override public void visitReferenceExpression(@NotNull PsiReferenceExpression ref) { - if (!canBeStatic) { - return; - } super.visitReferenceExpression(ref); PsiElement element = ref.resolve(); @@ -41,6 +44,7 @@ class CanBeStaticVisitor extends JavaRecursiveElementWalkingVisitor { !owner.hasModifierProperty(PsiModifier.STATIC) && !(owner instanceof PsiClass cls && ClassUtil.isTopLevelClass(cls))) { canBeStatic = false; + stopWalking(); } } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/field_may_be_static/FieldMayBeStatic.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/field_may_be_static/FieldMayBeStatic.java index e826bdcd7db6..0a8f09d878e9 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/field_may_be_static/FieldMayBeStatic.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/performance/field_may_be_static/FieldMayBeStatic.java @@ -66,4 +66,9 @@ class Outer { }.run(); } -} \ No newline at end of file +} +class ThisExpression { + private final boolean test = this instanceof Sub; + + static class Sub extends ThisExpression {} +}