Resolve enum entries similar to objects in TypeHierarchyResolver

This commit is contained in:
Alexander Udalov
2013-10-30 21:57:24 +04:00
parent c04f63e157
commit dd6cfcdc78
9 changed files with 103 additions and 71 deletions
@@ -31,6 +31,8 @@ import org.jetbrains.jet.storage.StorageManager;
import java.util.List;
import java.util.Map;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isEnumClass;
public abstract class AbstractClassDescriptor implements ClassDescriptor {
private final Name name;
protected final NotNullLazyValue<JetType> defaultType;
@@ -81,6 +83,12 @@ public abstract class AbstractClassDescriptor implements ClassDescriptor {
return getDefaultType();
}
if (getKind() == ClassKind.ENUM_ENTRY) {
DeclarationDescriptor enumClass = getContainingDeclaration();
assert isEnumClass(enumClass) : "Enum entry should be declared in enum class: " + this;
return ((ClassDescriptor) enumClass).getDefaultType();
}
ClassDescriptor classObject = getClassObjectDescriptor();
return classObject == null ? null : classObject.getDefaultType();
}