non-static members access from implicitly static context fixed (IDEA-108285)

This commit is contained in:
Anna Kozlova
2013-06-03 22:25:26 +04:00
parent cebe1a8943
commit 8741f3f1d6
5 changed files with 11 additions and 5 deletions
@@ -835,7 +835,7 @@ public class HighlightClassUtil {
}
if (place instanceof PsiModifierListOwner) {
final PsiModifierList modifierList = ((PsiModifierListOwner)place).getModifierList();
if (modifierList != null && modifierList.hasExplicitModifier(PsiModifier.STATIC)) {
if (modifierList != null && modifierList.hasModifierProperty(PsiModifier.STATIC)) {
return false;
}
}
@@ -3,12 +3,12 @@ class C implements A {
}
interface A {
A a = new C(<error descr="Cannot find symbol variable this">this</error>);
A a = new C(<error descr="'A.this' cannot be referenced from a static context">this</error>);
A a1 = new C(<error descr="Cannot find symbol variable this">this</error>){};
class B {
A foo() {
return <error descr="Cannot find symbol variable this">A.this</error>;
return <error descr="'A.this' cannot be referenced from a static context">A.this</error>;
}
B foo1() {
@@ -0,0 +1,5 @@
class Test<T> {
interface NestedInterface<U extends <error descr="'Test.this' cannot be referenced from a static context">T</error>> {
<V extends <error descr="'Test.this' cannot be referenced from a static context">T</error>> void foo();
}
}
@@ -1,5 +1,5 @@
interface Bazz {
Bazz foo = <error descr="Cannot find symbol variable this">Bazz.this</error>;
Bazz foo = <error descr="'Bazz.this' cannot be referenced from a static context">Bazz.this</error>;
static void foo1() {
Bazz foo = <error descr="'Bazz.this' cannot be referenced from a static context">Bazz.this</error>;
}
@@ -7,7 +7,7 @@ interface Bazz {
Runnable bar = new Runnable() {
@Override
public void run() {
Bazz f = <error descr="Cannot find symbol variable this">Bazz.this</error>;
Bazz f = <error descr="'Bazz.this' cannot be referenced from a static context">Bazz.this</error>;
}
};
@@ -55,4 +55,5 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase {
public void testJavacQuirks() { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); }
public void testMethodReturnTypeSubstitutability() { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(true, false); }
public void testIDEADEV11877() throws Exception { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(false, false); }
public void testIDEA108285() throws Exception { setLanguageLevel(LanguageLevel.JDK_1_6); doTest(false, false); }
}