Pull up getUnsubstitutedInnerClassesScope()
This commit is contained in:
+14
@@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
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.SubstitutingScope;
|
||||
import org.jetbrains.jet.lang.types.*;
|
||||
@@ -36,6 +37,7 @@ import java.util.Map;
|
||||
public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
||||
private final Name name;
|
||||
protected final NotNullLazyValue<JetType> defaultType;
|
||||
private final NotNullLazyValue<JetScope> unsubstitutedInnerClassesScope;
|
||||
|
||||
public AbstractClassDescriptor(@NotNull StorageManager storageManager, @NotNull Name name) {
|
||||
this.name = name;
|
||||
@@ -45,6 +47,12 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
||||
return TypeUtils.makeUnsubstitutedType(AbstractClassDescriptor.this, getScopeForMemberLookup());
|
||||
}
|
||||
});
|
||||
this.unsubstitutedInnerClassesScope = storageManager.createLazyValue(new Function0<JetScope>() {
|
||||
@Override
|
||||
public JetScope invoke() {
|
||||
return new InnerClassesScopeWrapper(getScopeForMemberLookup());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -69,6 +77,12 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
|
||||
return classObject == null ? null : classObject.getDefaultType();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetScope getUnsubstitutedInnerClassesScope() {
|
||||
return unsubstitutedInnerClassesScope.invoke();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetScope getMemberScope(List<? extends TypeProjection> typeArguments) {
|
||||
|
||||
+1
-13
@@ -23,7 +23,6 @@ import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorFactory;
|
||||
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.WritableScope;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
@@ -56,7 +55,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
private final ClassKind kind;
|
||||
|
||||
private JetScope scopeForMemberLookup;
|
||||
private JetScope innerClassesScope;
|
||||
|
||||
private ReceiverParameterDescriptor implicitReceiver;
|
||||
|
||||
@@ -76,9 +74,8 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
return typeConstructor;
|
||||
}
|
||||
|
||||
public void setScopeForMemberLookup(JetScope scopeForMemberLookup) {
|
||||
public void setScopeForMemberLookup(@NotNull JetScope scopeForMemberLookup) {
|
||||
this.scopeForMemberLookup = scopeForMemberLookup;
|
||||
this.innerClassesScope = new InnerClassesScopeWrapper(scopeForMemberLookup);
|
||||
}
|
||||
|
||||
public void createTypeConstructor() {
|
||||
@@ -149,15 +146,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
|
||||
return classObjectDescriptor;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public JetScope getUnsubstitutedInnerClassesScope() {
|
||||
return innerClassesScope;
|
||||
}
|
||||
|
||||
|
||||
public void addSupertype(@NotNull JetType supertype) {
|
||||
assert !supertype.isError() : "Error types must be filtered out in DescriptorResolver";
|
||||
if (TypeUtils.getClassDescriptor(supertype) != null) {
|
||||
|
||||
Reference in New Issue
Block a user