Kotlin module name extraction
This commit is contained in:
@@ -479,7 +479,7 @@ public abstract class MemberCodegen<T extends JetElement/* TODO: & JetDeclaratio
|
||||
@NotNull GenerationState state,
|
||||
@NotNull ClassBuilder classBuilder
|
||||
) {
|
||||
classBuilder.newField(NO_ORIGIN, ACC_PUBLIC | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, "$moduleName",
|
||||
classBuilder.newField(NO_ORIGIN, ACC_PUBLIC | ACC_STATIC | ACC_FINAL | ACC_SYNTHETIC, JvmAbi.KOTLIN_MODULE_FIELD_NAME,
|
||||
AsmTypes.JAVA_STRING_TYPE.getDescriptor(), null, state.getModuleName());
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,7 @@ public final class JvmAbi {
|
||||
|
||||
public static final String KOTLIN_CLASS_FIELD_NAME = "$kotlinClass";
|
||||
public static final String KOTLIN_PACKAGE_FIELD_NAME = "$kotlinPackage";
|
||||
public static final String KOTLIN_MODULE_FIELD_NAME = "$moduleName";
|
||||
public static final ClassId REFLECTION_FACTORY_IMPL = ClassId.topLevel(new FqName("kotlin.reflect.jvm.internal.ReflectionFactoryImpl"));
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package kotlin.reflect.jvm
|
||||
|
||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||
import java.lang.reflect.*
|
||||
import java.util.*
|
||||
import kotlin.reflect.*
|
||||
@@ -96,7 +97,7 @@ public val KType.javaType: Type
|
||||
public val Class<*>.kotlinPackage: KPackage?
|
||||
get() = if (getSimpleName().endsWith("Package") &&
|
||||
getAnnotation(javaClass<kotlin.jvm.internal.KotlinPackage>()) != null) {
|
||||
val field = this.getField("\$moduleName")
|
||||
val field = this.getField(JvmAbi.KOTLIN_MODULE_FIELD_NAME)
|
||||
if (field != null) {
|
||||
KPackageImpl(this, field.get(null) as String)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user