Pull up getClassObjectType()

This commit is contained in:
Alexander Udalov
2013-11-20 19:48:17 +04:00
parent 97f2d568a3
commit e9f102f3e6
4 changed files with 8 additions and 23 deletions
@@ -243,13 +243,6 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
return Collections.singletonList(constructor); return Collections.singletonList(constructor);
} }
@Nullable
@Override
public JetType getClassObjectType() {
ClassDescriptor classObjectDescriptor = getClassObjectDescriptor();
return classObjectDescriptor == null ? null : classObjectDescriptor.getDefaultType();
}
@Nullable @Nullable
private ClassDescriptor computeClassObjectDescriptor() { private ClassDescriptor computeClassObjectDescriptor() {
if (!classProto.getClassObjectPresent()) { if (!classProto.getClassObjectPresent()) {
@@ -260,12 +260,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
return typeConstructor; return typeConstructor;
} }
@Override
public JetType getClassObjectType() {
ClassDescriptor classObjectDescriptor = getClassObjectDescriptor();
return classObjectDescriptor == null ? null : classObjectDescriptor.getDefaultType();
}
@Override @Override
public ClassDescriptor getClassObjectDescriptor() { public ClassDescriptor getClassObjectDescriptor() {
return classObjectDescriptor.invoke(); return classObjectDescriptor.invoke();
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors.impl;
import jet.Function0; import jet.Function0;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
@@ -61,6 +62,13 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
@NotNull @NotNull
protected abstract JetScope getScopeForMemberLookup(); protected abstract JetScope getScopeForMemberLookup();
@Nullable
@Override
public JetType getClassObjectType() {
ClassDescriptor classObject = getClassObjectDescriptor();
return classObject == null ? null : classObject.getDefaultType();
}
@NotNull @NotNull
@Override @Override
public JetScope getMemberScope(List<? extends TypeProjection> typeArguments) { public JetScope getMemberScope(List<? extends TypeProjection> typeArguments) {
@@ -53,7 +53,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
private final boolean isInner; private final boolean isInner;
private MutableClassDescriptorLite classObjectDescriptor; private MutableClassDescriptorLite classObjectDescriptor;
private JetType classObjectType;
private final ClassKind kind; private final ClassKind kind;
private JetScope scopeForMemberLookup; private JetScope scopeForMemberLookup;
@@ -98,21 +97,12 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
return (WritableScope) scopeForMemberLookup; return (WritableScope) scopeForMemberLookup;
} }
@Override @Override
@NotNull @NotNull
public JetScope getScopeForMemberLookup() { public JetScope getScopeForMemberLookup() {
return scopeForMemberLookup; return scopeForMemberLookup;
} }
@Override
public JetType getClassObjectType() {
if (classObjectType == null && classObjectDescriptor != null) {
classObjectType = classObjectDescriptor.getDefaultType();
}
return classObjectType;
}
@NotNull @NotNull
@Override @Override
public ClassKind getKind() { public ClassKind getKind() {