Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java')
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java
index e02ff4f46..f18fac16a 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BlockScope.java
@@ -636,6 +636,14 @@ private Binding internalGetBinding(char[][] compoundName, int mask, InvocationSi
}
// binding is a ReferenceBinding
if (!binding.isValidBinding()) {
+//{ObjectTeams: let decapsulation see into nested levels of invisible types:
+ if (binding.problemId() == ProblemReasons.NotVisible
+ && invocationSite instanceof Expression
+ && ((Expression)invocationSite).getBaseclassDecapsulation().isAllowed())
+ {
+ binding = ((ProblemReferenceBinding)binding).closestMatch;
+ } else {
+// orig:
if (problemFieldBinding != null) {
return problemFieldBinding;
}
@@ -643,6 +651,9 @@ private Binding internalGetBinding(char[][] compoundName, int mask, InvocationSi
CharOperation.subarray(compoundName, 0, currentIndex),
(ReferenceBinding)((ReferenceBinding)binding).closestMatch(),
binding.problemId());
+// ;giro
+ }
+// SH}
}
if (invocationSite instanceof ASTNode) {
referenceBinding = (ReferenceBinding) binding;

Back to the top