More precise return type in ClassDescriptorWithResolutionScopes.getClassObjectDescriptor()

This commit is contained in:
Andrey Breslav
2014-02-27 14:13:07 +04:00
parent c04ce4401f
commit 674d990ba1
3 changed files with 16 additions and 6 deletions
@@ -77,7 +77,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
private final boolean isInner;
private final NotNullLazyValue<Annotations> annotations;
private final NullableLazyValue<ClassDescriptor> classObjectDescriptor;
private final NullableLazyValue<ClassDescriptorWithResolutionScopes> classObjectDescriptor;
private final LazyClassMemberScope unsubstitutedMemberScope;
@@ -130,9 +130,9 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
return resolveAnnotations();
}
});
this.classObjectDescriptor = storageManager.createNullableLazyValue(new Function0<ClassDescriptor>() {
this.classObjectDescriptor = storageManager.createNullableLazyValue(new Function0<ClassDescriptorWithResolutionScopes>() {
@Override
public ClassDescriptor invoke() {
public ClassDescriptorWithResolutionScopes invoke() {
return computeClassObjectDescriptor();
}
});
@@ -271,12 +271,12 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyEnti
}
@Override
public ClassDescriptor getClassObjectDescriptor() {
public ClassDescriptorWithResolutionScopes getClassObjectDescriptor() {
return classObjectDescriptor.invoke();
}
@Nullable
private ClassDescriptor computeClassObjectDescriptor() {
private ClassDescriptorWithResolutionScopes computeClassObjectDescriptor() {
JetClassObject classObject = declarationProvider.getOwnerInfo().getClassObject();
JetClassLikeInfo classObjectInfo = getClassObjectInfo(classObject);
@@ -17,6 +17,7 @@
package org.jetbrains.jet.lang.descriptors;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.ReadOnly;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
@@ -32,6 +33,10 @@ public interface ClassDescriptorWithResolutionScopes extends ClassDescriptor {
@NotNull
JetScope getScopeForInitializerResolution();
@Nullable
@Override
ClassDescriptorWithResolutionScopes getClassObjectDescriptor();
@NotNull
@ReadOnly
Collection<CallableMemberDescriptor> getDeclaredCallableMembers();
@@ -61,7 +61,12 @@ public class MutableClassDescriptor extends MutableClassDescriptorLite implement
scopeForMemberResolution.addLabeledDeclaration(this);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@Nullable
@Override
public MutableClassDescriptor getClassObjectDescriptor() {
return (MutableClassDescriptor) super.getClassObjectDescriptor();
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public void setPrimaryConstructor(@NotNull ConstructorDescriptor constructorDescriptor) {