Support inner classes scopes in deserialized classes
This commit is contained in:
committed by
Alexander Udalov
parent
b7966179f5
commit
2aa0afd199
+4
-1
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user