Minor, use existing utility for getting implClassName
This commit is contained in:
@@ -64,8 +64,6 @@ import org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter;
|
||||
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor;
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf;
|
||||
import org.jetbrains.kotlin.types.*;
|
||||
import org.jetbrains.kotlin.types.expressions.OperatorConventions;
|
||||
import org.jetbrains.org.objectweb.asm.Type;
|
||||
@@ -272,9 +270,8 @@ public class JetTypeMapper {
|
||||
return new ContainingClassesInfo(builtinsFacadeClassId, builtinsFacadeClassId);
|
||||
}
|
||||
|
||||
assert descriptor.getProto().hasExtension(JvmProtoBuf.implClassName)
|
||||
: "No implClassName for " + descriptor;
|
||||
Name implClassName = JvmFileClassUtil.getImplClassName(descriptor);
|
||||
assert implClassName != null : "No implClassName for " + descriptor;
|
||||
String implSimpleName = implClassName.asString();
|
||||
|
||||
String facadeSimpleName;
|
||||
|
||||
@@ -19,15 +19,12 @@ package org.jetbrains.kotlin.load.kotlin
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.annotations.TestOnly
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.JetFile
|
||||
import org.jetbrains.kotlin.psi.JetNamedFunction
|
||||
import org.jetbrains.kotlin.psi.JetProperty
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
|
||||
import java.util.*
|
||||
|
||||
public object PackagePartClassUtils {
|
||||
@@ -75,13 +72,6 @@ public object PackagePartClassUtils {
|
||||
public fun getPackagePartFqName(file: JetFile): FqName =
|
||||
getPackagePartFqName(file.packageFqName, file.name)
|
||||
|
||||
@JvmStatic
|
||||
public fun getPackagePartFqName(callable: DeserializedCallableMemberDescriptor): FqName {
|
||||
val implClassName = callable.nameResolver.getName(callable.proto.getExtension(JvmProtoBuf.implClassName))
|
||||
val packageFqName = (callable.containingDeclaration as PackageFragmentDescriptor).fqName
|
||||
return packageFqName.child(implClassName)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
public fun getFilesWithCallables(files: Collection<JetFile>): List<JetFile> =
|
||||
files.filter { fileHasTopLevelCallables(it) }
|
||||
|
||||
+3
-8
@@ -24,6 +24,7 @@ import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.kotlin.descriptors.*;
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil;
|
||||
import org.jetbrains.kotlin.idea.decompiler.KotlinClsFileBase;
|
||||
import org.jetbrains.kotlin.idea.stubindex.JetSourceFilterScope;
|
||||
import org.jetbrains.kotlin.idea.stubindex.StaticFacadeIndexUtil;
|
||||
@@ -37,11 +38,8 @@ import org.jetbrains.kotlin.name.Name;
|
||||
import org.jetbrains.kotlin.psi.JetDeclaration;
|
||||
import org.jetbrains.kotlin.psi.JetFile;
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils;
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptPackageFragment;
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf;
|
||||
import org.jetbrains.kotlin.types.ErrorUtils;
|
||||
import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils;
|
||||
|
||||
@@ -129,11 +127,8 @@ public final class DecompiledNavigationUtils {
|
||||
FqName packageFQN = ((PackageFragmentDescriptor) containerDescriptor).getFqName();
|
||||
|
||||
if (referencedDescriptor instanceof DeserializedCallableMemberDescriptor) {
|
||||
DeserializedCallableMemberDescriptor deserializedDescriptor = (DeserializedCallableMemberDescriptor) referencedDescriptor;
|
||||
ProtoBuf.Callable proto = deserializedDescriptor.getProto();
|
||||
NameResolver nameResolver = deserializedDescriptor.getNameResolver();
|
||||
if (proto.hasExtension(JvmProtoBuf.implClassName)) {
|
||||
Name partClassName = nameResolver.getName(proto.getExtension(JvmProtoBuf.implClassName));
|
||||
Name partClassName = JvmFileClassUtil.getImplClassName((DeserializedCallableMemberDescriptor) referencedDescriptor);
|
||||
if (partClassName != null) {
|
||||
FqName partFQN = packageFQN.child(partClassName);
|
||||
Collection<JetFile> multifileFacadeJetFiles =
|
||||
StaticFacadeIndexUtil.getMultifileClassForPart(partFQN, GlobalSearchScope.allScope(project), project);
|
||||
|
||||
+4
-5
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptor
|
||||
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
@@ -37,7 +38,6 @@ import org.jetbrains.kotlin.renderer.DescriptorRenderer
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.module
|
||||
import org.jetbrains.kotlin.resolve.jvm.JvmClassName
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
|
||||
|
||||
private val LOG = Logger.getInstance("org.jetbrains.kotlin.idea.debugger")
|
||||
|
||||
@@ -80,10 +80,9 @@ fun findPackagePartInternalNameForLibraryFile(topLevelDeclaration: JetDeclaratio
|
||||
return null
|
||||
}
|
||||
|
||||
val proto = deserializedDescriptor.proto
|
||||
if (proto.hasExtension(JvmProtoBuf.implClassName)) {
|
||||
val name = deserializedDescriptor.nameResolver.getName(proto.getExtension(JvmProtoBuf.implClassName)!!)
|
||||
return JvmClassName.byFqNameWithoutInnerClasses(packageFqName.child(name)).getInternalName()
|
||||
val implClassName = JvmFileClassUtil.getImplClassName(deserializedDescriptor)
|
||||
if (implClassName != null) {
|
||||
return JvmClassName.byFqNameWithoutInnerClasses(packageFqName.child(implClassName)).getInternalName()
|
||||
}
|
||||
|
||||
return null
|
||||
|
||||
+3
-4
@@ -20,18 +20,17 @@ import com.intellij.openapi.vfs.VirtualFile
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil
|
||||
import org.jetbrains.kotlin.idea.caches.resolve.IDEPackagePartProvider
|
||||
import org.jetbrains.kotlin.idea.test.JetWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.load.kotlin.JvmVirtualFileFinder
|
||||
import org.jetbrains.kotlin.load.kotlin.PackagePartClassUtils
|
||||
import org.jetbrains.kotlin.load.kotlin.VirtualFileFinder
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.resolve.BindingTraceContext
|
||||
import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM
|
||||
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor
|
||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf
|
||||
|
||||
public class DecompiledTextConsistencyTest : TextConsistencyBaseTest() {
|
||||
|
||||
@@ -61,6 +60,6 @@ public class DecompiledTextConsistencyTest : TextConsistencyBaseTest() {
|
||||
|
||||
override fun isFromFacade(descriptor: CallableMemberDescriptor, facadeFqName: FqName): Boolean =
|
||||
descriptor is DeserializedCallableMemberDescriptor &&
|
||||
descriptor.proto.hasExtension(JvmProtoBuf.implClassName) &&
|
||||
facadeFqName == PackagePartClassUtils.getPackagePartFqName(descriptor)
|
||||
JvmFileClassUtil.getImplClassName(descriptor) != null &&
|
||||
facadeFqName == JvmFileClassUtil.getPartFqNameForDeserializedCallable(descriptor)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user