allow navigation to not accessible fields when they are used inside reference chain

This commit is contained in:
Anna Kozlova
2015-02-17 14:58:59 +01:00
parent bcbc25e1de
commit 6ca09678c2
2 changed files with 8 additions and 4 deletions
@@ -239,9 +239,13 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple
@NotNull
private JavaResolveResult[] resolve(IElementType parentType, @NotNull PsiFile containingFile) {
if (parentType == JavaElementType.REFERENCE_EXPRESSION) {
JavaResolveResult[] variable = null;
JavaResolveResult[] result = resolveToVariable(containingFile);
if (result.length == 1 && result[0].isAccessible()) {
return result;
if (result.length == 1) {
if (result[0].isAccessible()) {
return result;
}
variable = result;
}
PsiElement classNameElement = getReferenceNameElement();
@@ -260,7 +264,7 @@ public class PsiReferenceExpressionImpl extends PsiReferenceExpressionBase imple
result = resolveToPackage(containingFile);
}
return result;
return result.length == 0 && variable != null ? variable : result;
}
if (parentType == JavaElementType.METHOD_CALL_EXPRESSION) {
@@ -4,7 +4,7 @@ class C {
class A extends C {
{
<error descr="Cannot resolve symbol 'id'">id</error>.MyObject.fromInt(1);
<error descr="'id' has private access in 'C'">id</error>.MyObject.fromInt(1);
<error descr="'id' has private access in 'C'">id</error>.MyObject o;
}