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;
}
@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.jet.lang.descriptors.*;
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.RedeclarationHandler;
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.resolve.BindingContext.FQNAME_TO_CLASS_DESCRIPTOR;
import static org.jetbrains.jet.lang.resolve.BindingContext.TYPE;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName;
/**
* @author abreslav
@@ -291,7 +291,7 @@ public class TypeHierarchyResolver {
if (klass.hasModifier(JetTokens.ENUM_KEYWORD)) {
MutableClassDescriptor classObjectDescriptor = new MutableClassDescriptor(
mutableClassDescriptor, outerScope, ClassKind.OBJECT,
Name.special("<class-object-for-" + klass.getName() + ">"));
getClassObjectName(klass.getName()));
mutableClassDescriptor.getBuilder().setClassObjectDescriptor(classObjectDescriptor);
classObjectDescriptor.setModality(Modality.FINAL);
classObjectDescriptor.setVisibility(DescriptorResolver.resolveVisibilityFromModifiers(klass.getModifierList()));
@@ -43,6 +43,8 @@ import org.jetbrains.jet.lang.types.TypeUtils;
import java.util.*;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName;
/**
* @author abreslav
*/
@@ -222,7 +224,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
JetClassLikeInfo classObjectInfo = getClassObjectInfo(classObject);
if (classObjectInfo != null) {
Name classObjectName = getKind() == ClassKind.ENUM_CLASS
? Name.special("<class-object-for-" + getName() + ">")
? getClassObjectName(getName())
: JetPsiUtil.NO_NAME_PROVIDED;
classObjectDescriptor = new LazyClassDescriptor(resolveSession, this, classObjectName, classObjectInfo);
}