static method calls should not be treated as inherited (IDEA-105021)

This commit is contained in:
anna
2013-04-11 16:22:44 +02:00
parent fc74d8740d
commit 38d197e704
3 changed files with 13 additions and 1 deletions

View File

@@ -172,11 +172,11 @@ public class HighlightNamesUtil {
if (method.isConstructor()) {
return isDeclaration ? HighlightInfoType.CONSTRUCTOR_DECLARATION : HighlightInfoType.CONSTRUCTOR_CALL;
}
if (isInheritedMethod) return HighlightInfoType.INHERITED_METHOD;
if (isDeclaration) return HighlightInfoType.METHOD_DECLARATION;
if (method.hasModifierProperty(PsiModifier.STATIC)) {
return HighlightInfoType.STATIC_METHOD;
}
if (isInheritedMethod) return HighlightInfoType.INHERITED_METHOD;
if(method.hasModifierProperty(PsiModifier.ABSTRACT)) {
return HighlightInfoType.ABSTRACT_METHOD;
}

View File

@@ -0,0 +1,9 @@
class <symbolName descr="null">A</symbolName> {
static void <symbolName descr="null">foo</symbolName>(){}
}
class <symbolName descr="null">B</symbolName> extends <symbolName descr="null">A</symbolName> {
static {
<symbolName descr="null">A</symbolName>.<symbolName descr="null" type="STATIC_METHOD">foo</symbolName>();
<symbolName descr="null" type="STATIC_METHOD">foo</symbolName>();
}
}

View File

@@ -362,4 +362,7 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testExplicitConstructorInvocation() throws Exception { doTest(false, false); }
public void testThisInInterface() throws Exception { doTest(false, false); }
public void testInnerClassConstantReference() throws Exception { doTest(false, false); }
public void testStaticMethodCalls() throws Exception {
doTestFile(BASE_PATH + "/" + getTestName(false) + ".java").checkSymbolNames().test();
}
}