Use unsafe qualified names instead of safe ones in FQNAME_TO_CLASS_DESCRIPTOR slice
This commit is contained in:
@@ -35,6 +35,7 @@ import org.jetbrains.jet.kdoc.psi.api.KDocElement;
|
||||
import org.jetbrains.jet.lang.parsing.JetExpressionParsing;
|
||||
import org.jetbrains.jet.lang.resolve.ImportPath;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.name.SpecialNames;
|
||||
import org.jetbrains.jet.lang.types.expressions.OperatorConventions;
|
||||
@@ -190,6 +191,12 @@ public class JetPsiUtil {
|
||||
return header != null ? header.getFqName() : FqName.ROOT;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqNameUnsafe getUnsafeFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
FqName fqName = getFQName(namedDeclaration);
|
||||
return fqName != null ? fqName.toUnsafe() : null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static FqName getFQName(@NotNull JetNamedDeclaration namedDeclaration) {
|
||||
Name name = namedDeclaration.getNameAsName();
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystemCompleter;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.types.DeferredType;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
@@ -245,7 +246,7 @@ public interface BindingContext {
|
||||
WritableSlice<ClassDescriptor, FunctionDescriptor> DATA_CLASS_COPY_FUNCTION =
|
||||
Slices.<ClassDescriptor, FunctionDescriptor>sliceBuilder().build();
|
||||
|
||||
WritableSlice<FqName, ClassDescriptor> FQNAME_TO_CLASS_DESCRIPTOR = new BasicWritableSlice<FqName, ClassDescriptor>(DO_NOTHING, true);
|
||||
WritableSlice<FqNameUnsafe, ClassDescriptor> FQNAME_TO_CLASS_DESCRIPTOR = new BasicWritableSlice<FqNameUnsafe, ClassDescriptor>(DO_NOTHING, true);
|
||||
WritableSlice<JetFile, PackageFragmentDescriptor> FILE_TO_PACKAGE_FRAGMENT = Slices.createSimpleSlice();
|
||||
WritableSlice<FqName, Collection<JetFile>> PACKAGE_TO_FILES = Slices.createSimpleSlice();
|
||||
|
||||
|
||||
@@ -491,7 +491,7 @@ public class TypeHierarchyResolver {
|
||||
createClassDescriptorForSingleton(declaration, JetPsiUtil.safeName(declaration.getName()), ClassKind.OBJECT);
|
||||
|
||||
owner.addClassifierDescriptor(descriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getFQName(declaration), descriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getUnsafeFQName(declaration), descriptor);
|
||||
|
||||
descriptor.getBuilder().setClassObjectDescriptor(createSyntheticClassObject(descriptor));
|
||||
}
|
||||
@@ -572,7 +572,7 @@ public class TypeHierarchyResolver {
|
||||
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(
|
||||
containingDeclaration, outerScope, kind, isInner, JetPsiUtil.safeName(klass.getName()));
|
||||
context.getClasses().put(klass, mutableClassDescriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getFQName(klass), mutableClassDescriptor);
|
||||
trace.record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getUnsafeFQName(klass), mutableClassDescriptor);
|
||||
|
||||
createClassObjectForEnumClass(mutableClassDescriptor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user