Skip to content

Commit 709c111

Browse files
committed
Kotlin: Add getJvmModuleNameForDeserializedDescriptor wrapper
It has been removed in 2.2.20.
1 parent d1da041 commit 709c111

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import org.jetbrains.kotlin.load.java.JvmAbi
3737
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
3838
import org.jetbrains.kotlin.load.java.structure.*
3939
import org.jetbrains.kotlin.load.java.typeEnhancement.hasEnhancedNullability
40-
import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor
4140
import org.jetbrains.kotlin.name.FqName
4241
import org.jetbrains.kotlin.name.NameUtils
4342
import org.jetbrains.kotlin.name.SpecialNames
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.github.codeql.utils.versions
2+
3+
import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor
4+
import org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor
5+
6+
fun getJvmModuleNameForDeserializedDescriptor(descriptor: CallableMemberDescriptor): String? {
7+
return org.jetbrains.kotlin.load.kotlin.getJvmModuleNameForDeserializedDescriptor(descriptor)
8+
}
9+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.github.codeql.utils.versions
2+
3+
import org.jetbrains.kotlin.descriptors.*
4+
import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource
5+
import org.jetbrains.kotlin.metadata.deserialization.*
6+
import org.jetbrains.kotlin.metadata.jvm.deserialization.*
7+
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
8+
import org.jetbrains.kotlin.resolve.DescriptorUtils.*
9+
import org.jetbrains.kotlin.serialization.deserialization.descriptors.*
10+
11+
fun getJvmModuleNameForDeserializedDescriptor(descriptor: CallableMemberDescriptor): String? {
12+
val parent = getParentOfType(descriptor, ClassOrPackageFragmentDescriptor::class.java, false)
13+
14+
when {
15+
parent is DeserializedClassDescriptor -> {
16+
val classProto = parent.classProto
17+
val nameResolver = parent.c.nameResolver
18+
return classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)
19+
?.let(nameResolver::getString)
20+
?: JvmProtoBufUtil.DEFAULT_MODULE_NAME
21+
}
22+
descriptor is DeserializedMemberDescriptor -> {
23+
val source = descriptor.containerSource
24+
if (source is JvmPackagePartSource) {
25+
return source.moduleName
26+
}
27+
}
28+
}
29+
30+
return null
31+
}
32+

0 commit comments

Comments
 (0)