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);
}
@Nullable
@Override
public JetType getClassObjectType() {
ClassDescriptor classObjectDescriptor = getClassObjectDescriptor();
return classObjectDescriptor == null ? null : classObjectDescriptor.getDefaultType();
}
@Nullable
private ClassDescriptor computeClassObjectDescriptor() {
if (!classProto.getClassObjectPresent()) {
@@ -260,12 +260,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements LazyDesc
return typeConstructor;
}
@Override
public JetType getClassObjectType() {
ClassDescriptor classObjectDescriptor = getClassObjectDescriptor();
return classObjectDescriptor == null ? null : classObjectDescriptor.getDefaultType();
}
@Override
public ClassDescriptor getClassObjectDescriptor() {
return classObjectDescriptor.invoke();
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.descriptors.impl;
import jet.Function0;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
@@ -61,6 +62,13 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
@NotNull
protected abstract JetScope getScopeForMemberLookup();
@Nullable
@Override
public JetType getClassObjectType() {
ClassDescriptor classObject = getClassObjectDescriptor();
return classObject == null ? null : classObject.getDefaultType();
}
@NotNull
@Override
public JetScope getMemberScope(List<? extends TypeProjection> typeArguments) {
@@ -53,7 +53,6 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
private final boolean isInner;
private MutableClassDescriptorLite classObjectDescriptor;
private JetType classObjectType;
private final ClassKind kind;
private JetScope scopeForMemberLookup;
@@ -98,21 +97,12 @@ public abstract class MutableClassDescriptorLite extends ClassDescriptorBase {
return (WritableScope) scopeForMemberLookup;
}
@Override
@NotNull
public JetScope getScopeForMemberLookup() {
return scopeForMemberLookup;
}
@Override
public JetType getClassObjectType() {
if (classObjectType == null && classObjectDescriptor != null) {
classObjectType = classObjectDescriptor.getDefaultType();
}
return classObjectType;
}
@NotNull
@Override
public ClassKind getKind() {