IDEA-72851

This commit is contained in:
Alexey Kudravtsev
2011-09-02 13:50:55 +04:00
parent 700a55d0f2
commit ee1a3cb532
2 changed files with 20 additions and 8 deletions
@@ -229,6 +229,11 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements
? CandidateInfo.RESOLVE_RESULT_FOR_PACKAGE_PREFIX_PACKAGE
: JavaResolveResult.EMPTY_ARRAY;
}
// check that all qualifiers must resolve to package parts, to prevent local vars shadowing corresponding package case
PsiExpression qualifier = getQualifierExpression();
if (qualifier instanceof PsiReferenceExpression && !(((PsiReferenceExpression)qualifier).resolve() instanceof PsiPackage)) {
return JavaResolveResult.EMPTY_ARRAY;
}
return new JavaResolveResult[]{new CandidateInfo(aPackage, PsiSubstitutor.EMPTY)};
}
@@ -1,14 +1,21 @@
class E {
class Outer {
class Outer {
class S {
public static final int SS = 0;
}
public static final int SS = 0;
}
}
Outer f() {
int s = <error descr="Expected class or package">f()</error>.S.SS;
int s1 = <error descr="Expected class or package">this</error>.Outer.S.SS;
int s2 = Outer.S.SS;
return null;
Outer f() {
int s = <error descr="Expected class or package">f()</error>.S.SS;
int s1 = <error descr="Expected class or package">this</error>.Outer.S.SS;
int s2 = Outer.S.SS;
return null;
}
class opopo {
public void main(String[] args) {
String java = "bla";
java.<error descr="Cannot resolve symbol 'lang'">lang</error>.String.valueOf("");
}
}
}