mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IG: do not suggest qualified this expression on method of local class
This commit is contained in:
+11
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+11
@@ -14,6 +14,16 @@ public class UnqualifiedMethodAccess extends JPanel {
|
||||
|
||||
void foo(String s) {
|
||||
this.foo();
|
||||
class A {
|
||||
void a() {
|
||||
<warning descr="Instance method call 'a' is not qualified with 'this'">a</warning>();
|
||||
new Object() {
|
||||
void b() {
|
||||
a();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void anonymous() {
|
||||
@@ -22,6 +32,7 @@ public class UnqualifiedMethodAccess extends JPanel {
|
||||
new Object() {
|
||||
void foo() {
|
||||
bar();
|
||||
<warning descr="Instance method call 'foo' is not qualified with 'this'">foo</warning>();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user