From 58efa34a33f7cbf92dcd2f78b4bdc3f873e40582 Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Wed, 28 Aug 2019 13:51:58 +0200 Subject: [PATCH] KT-31291: KAPT - make sure ASM version is not inlined Switch to Java reflection when getting the ASM version used to analyze classes. Using Kotlin reflection resulted in the constant being inlined. Fixes KT-31291 Fixes KT-33493 --- .../gradle/internal/kapt/incremental/ClassAbiExtractor.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClassAbiExtractor.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClassAbiExtractor.kt index 1d09397b8af..204490f6780 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClassAbiExtractor.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/incremental/ClassAbiExtractor.kt @@ -15,7 +15,8 @@ const val metadataDescriptor: String = "Lkotlin/Metadata;" */ internal val lazyAsmApiVersion = lazy { try { - Opcodes::API_VERSION.get() + val field = Opcodes::class.java.getField("API_VERSION") + field.get(null) as Int } catch(e: Throwable) { Opcodes.API_VERSION }