Support inner classes scopes in deserialized classes

This commit is contained in:
Andrey Breslav
2013-06-04 13:57:47 +04:00
committed by Alexander Udalov
parent b7966179f5
commit 2aa0afd199
@@ -27,6 +27,7 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
import org.jetbrains.jet.lang.resolve.TraceUtil; import org.jetbrains.jet.lang.resolve.TraceUtil;
import org.jetbrains.jet.lang.resolve.lazy.storage.*; import org.jetbrains.jet.lang.resolve.lazy.storage.*;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.InnerClassesScopeWrapper;
import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverValue;
@@ -61,6 +62,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
private final Visibility visibility; private final Visibility visibility;
private final ClassKind kind; private final ClassKind kind;
private final boolean isInner; private final boolean isInner;
private final InnerClassesScopeWrapper innerClassesScope;
public DeserializedClassDescriptor( public DeserializedClassDescriptor(
@NotNull DeclarationDescriptor containingDeclaration, @NotNull DeclarationDescriptor containingDeclaration,
@@ -78,6 +80,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
this.containingDeclaration = containingDeclaration; this.containingDeclaration = containingDeclaration;
this.typeConstructor = new DeserializedClassTypeConstructor(); this.typeConstructor = new DeserializedClassTypeConstructor();
this.memberScope = new DeserializedClassMemberScope(this); this.memberScope = new DeserializedClassMemberScope(this);
this.innerClassesScope = new InnerClassesScopeWrapper(memberScope);
this.thisAsReceiverParameter = new LazyClassReceiverParameterDescriptor(); this.thisAsReceiverParameter = new LazyClassReceiverParameterDescriptor();
this.name = nameResolver.getName(classProto.getName()); this.name = nameResolver.getName(classProto.getName());
@@ -201,7 +204,7 @@ public class DeserializedClassDescriptor extends ClassDescriptorBase implements
@NotNull @NotNull
@Override @Override
public JetScope getUnsubstitutedInnerClassesScope() { public JetScope getUnsubstitutedInnerClassesScope() {
return JetScope.EMPTY; // TODO inner classes return innerClassesScope;
} }
@Nullable @Nullable