From 8b133f2e27107eb94170efe687bf8f07f13fe257 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Sat, 9 Jun 2012 13:41:37 +0400 Subject: [PATCH] Fix classifier lookup Writable scopes do not redirect getClassifier() to parent --- .../jet/lang/resolve/lazy/LazyClassDescriptor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java index fecfccb294a..891188a23a9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/lazy/LazyClassDescriptor.java @@ -112,7 +112,8 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes public JetScope getScopeForClassHeaderResolution() { if (scopeForClassHeaderResolution == null) { WritableScopeImpl scope = new WritableScopeImpl( - resolveSession.getResolutionScope(declarationProvider.getOwnerClassOrObject()), this, RedeclarationHandler.DO_NOTHING, "Class Header Resolution"); + JetScope.EMPTY, this, RedeclarationHandler.DO_NOTHING, "Class Header Resolution"); + scope.importScope(resolveSession.getResolutionScope(declarationProvider.getOwnerClassOrObject())); for (TypeParameterDescriptor typeParameterDescriptor : getTypeConstructor().getParameters()) { scope.addClassifierDescriptor(typeParameterDescriptor); } @@ -125,7 +126,9 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes public JetScope getScopeForMemberDeclarationResolution() { if (scopeForMemberDeclarationResolution == null) { WritableScopeImpl scope = new WritableScopeImpl( - getScopeForClassHeaderResolution(), this, RedeclarationHandler.DO_NOTHING, "Member Declaration Resolution"); + JetScope.EMPTY, this, RedeclarationHandler.DO_NOTHING, "Member Declaration Resolution"); + scope.importScope(getScopeForClassHeaderResolution()); + scope.importScope(getScopeForMemberLookup()); // TODO : supertypes etc