DescriptorUtils#getClassObjectName utility and usages.

This commit is contained in:
Pavel V. Talanov
2012-08-20 15:44:34 +04:00
parent cb0cf8e563
commit ca6516489c
3 changed files with 15 additions and 3 deletions
@@ -365,4 +365,14 @@ public class DescriptorUtils {
} }
return false; return false;
} }
@NotNull
public static Name getClassObjectName(@NotNull Name className) {
return getClassObjectName(className.getName());
}
@NotNull
public static Name getClassObjectName(@NotNull String className) {
return Name.special("<class-object-for-" + className + ">");
}
} }
@@ -25,7 +25,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler; import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler;
import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
@@ -43,6 +42,7 @@ import java.util.*;
import static org.jetbrains.jet.lang.diagnostics.Errors.*; import static org.jetbrains.jet.lang.diagnostics.Errors.*;
import static org.jetbrains.jet.lang.resolve.BindingContext.FQNAME_TO_CLASS_DESCRIPTOR; import static org.jetbrains.jet.lang.resolve.BindingContext.FQNAME_TO_CLASS_DESCRIPTOR;
import static org.jetbrains.jet.lang.resolve.BindingContext.TYPE; import static org.jetbrains.jet.lang.resolve.BindingContext.TYPE;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName;
/** /**
* @author abreslav * @author abreslav
@@ -291,7 +291,7 @@ public class TypeHierarchyResolver {
if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) { if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) {
MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor( MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(
mutableClassDescriptor, outerScope, ClassKind.OBJECT, mutableClassDescriptor, outerScope, ClassKind.OBJECT,
Name.special("<class-object-for-" + klass.getName() + ">")); getClassObjectName(klass.getName()));
mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor); mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor);
classObjectDescriptor.setModality(Modality.FINAL); classObjectDescriptor.setModality(Modality.FINAL);
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList())); classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
@@ -43,6 +43,8 @@ import org.jetbrains.jet.lang.types.TypeUtils;
import java.util.*; import java.util.*;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName;
/** /**
* @author abreslav * @author abreslav
*/ */
@@ -222,7 +224,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
JetClassLikeInfo classObjectInfo = getClassObjectInfo(classObject); JetClassLikeInfo classObjectInfo = getClassObjectInfo(classObject);
if (classObjectInfo != null) { if (classObjectInfo != null) {
Name classObjectName = getKind() == ClassKind.ENUM_CLASS Name classObjectName = getKind() == ClassKind.ENUM_CLASS
? Name.special("<class-object-for-" + getName() + ">") ? getClassObjectName(getName())
: JetPsiUtil.NO_NAME_PROVIDED; : JetPsiUtil.NO_NAME_PROVIDED;
classObjectDescriptor = new LazyClassDescriptor(resolveSession, this, classObjectName, classObjectInfo); classObjectDescriptor = new LazyClassDescriptor(resolveSession, this, classObjectName, classObjectInfo);
} }