From 6ca09678c29701d6a5919bad88746683f8d6492a Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 17 Feb 2015 14:55:44 +0100 Subject: [PATCH] allow navigation to not accessible fields when they are used inside reference chain --- .../source/tree/java/PsiReferenceExpressionImpl.java | 10 +++++++--- .../advHighlighting/PrivateFieldInSuperClass.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java index a93170650aa8..040653e20934 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiReferenceExpressionImpl.java @@ -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) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/PrivateFieldInSuperClass.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/PrivateFieldInSuperClass.java index 772288631436..7d1894cd6f3b 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/PrivateFieldInSuperClass.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/PrivateFieldInSuperClass.java @@ -4,7 +4,7 @@ class C { class A extends C { { - id.MyObject.fromInt(1); + id.MyObject.fromInt(1); id.MyObject o; }