good code red: allow containing this before super call (IDEA-67756)

This commit is contained in:
anna
2012-10-18 21:40:03 +02:00
parent 14681adb9e
commit fd9d1764e2
3 changed files with 22 additions and 4 deletions
@@ -1819,13 +1819,13 @@ public class HighlightUtil {
type = ((PsiReferenceExpression)qualifier).getType();
referencedClass = PsiUtil.resolveClassInType(type);
}
else if (qualifier instanceof PsiThisExpression || qualifier == null) {
@SuppressWarnings({"unchecked"}) PsiMethod parent = PsiTreeUtil.getParentOfType(expression, PsiMethod.class, true, PsiMember.class);
resolved = parent;
expression = qualifier == null ? expression : qualifier;
else if (qualifier == null) {
resolved = PsiTreeUtil.getParentOfType(expression, PsiMethod.class, true, PsiMember.class);
if (resolved != null) {
referencedClass = ((PsiMethod)resolved).getContainingClass();
}
} else if (qualifier instanceof PsiThisExpression) {
referencedClass = PsiUtil.resolveClassInType(((PsiThisExpression)qualifier).getType());
}
}
if (resolved instanceof PsiField) {
@@ -0,0 +1,17 @@
class A
{
class B
{
}
}
class C extends A
{
class D extends B
{
D(){
C.this.super();
}
}
}
@@ -357,4 +357,5 @@ public class LightAdvHighlightingTest extends LightDaemonAnalyzerTestCase {
public void testClassicRethrow() throws Exception { doTest(false, false); }
public void testRegexp() throws Exception { doTest(false, false); }
public void testUnsupportedFeatures() throws Exception { doTest(false, false); }
public void testThisBeforeSuper() throws Exception { doTest(false, false); }
}