Use unsafe qualified names instead of safe ones in FQNAME_TO_CLASS_DESCRIPTOR slice
This commit is contained in:
+1
-1
@@ -122,7 +122,7 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<JetClassOrObject> findClassOrObjectDeclarations(@NotNull FqName fqName, @NotNull GlobalSearchScope searchScope) {
|
||||
ClassDescriptor classDescriptor = getTrace().get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, fqName);
|
||||
ClassDescriptor classDescriptor = getTrace().get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, fqName.toUnsafe());
|
||||
if (classDescriptor != null) {
|
||||
PsiElement element = BindingContextUtils.classDescriptorToDeclaration(trace.getBindingContext(), classDescriptor);
|
||||
if (element != null && PsiSearchScopeUtil.isInScope(searchScope, element)) {
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ public class TraceBasedJavaResolverCache implements JavaResolverCache {
|
||||
@Nullable
|
||||
@Override
|
||||
public ClassDescriptor getClassResolvedFromSource(@NotNull FqName fqName) {
|
||||
return trace.get(FQNAME_TO_CLASS_DESCRIPTOR, fqName);
|
||||
return trace.get(FQNAME_TO_CLASS_DESCRIPTOR, fqName.toUnsafe());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -138,7 +138,7 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
|
||||
return ((ClassDescriptor) currentParent).getClassObjectDescriptor();
|
||||
}
|
||||
else {
|
||||
return bindingContext.get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, DescriptorUtils.getFqNameSafe(originalDescriptor));
|
||||
return bindingContext.get(BindingContext.FQNAME_TO_CLASS_DESCRIPTOR, DescriptorUtils.getFqName(originalDescriptor));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ import org.jetbrains.jet.lang.resolve.name.Name
|
||||
import org.jetbrains.jet.lang.resolve.BindingContextUtils
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
|
||||
|
||||
private enum class RenameType {
|
||||
JAVA_CLASS
|
||||
@@ -167,7 +168,7 @@ public abstract class AbstractRenameTest : MultiFileTestCase() {
|
||||
private fun doRenameInKotlinClass(renameParamsObject: JsonObject, context: TestContext,
|
||||
findDescriptorToRename: (ClassDescriptor) -> DeclarationDescriptor
|
||||
) {
|
||||
val classFqName = FqName(renameParamsObject.getString("classFQN"))
|
||||
val classFqName = FqNameUnsafe(renameParamsObject.getString("classFQN"))
|
||||
val newName = renameParamsObject.getString("newName")
|
||||
val mainFilePath = renameParamsObject.getNullableString("mainFile") ?: "${getTestDirName(false)}.kt"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user