diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/AdditionalClassAnnotationLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/AdditionalClassAnnotationLowering.kt index 5e2118cd6d9..3b29acb771a 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/AdditionalClassAnnotationLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/AdditionalClassAnnotationLowering.kt @@ -39,12 +39,8 @@ internal val additionalClassAnnotationPhase = makeIrFilePhase( private class AdditionalClassAnnotationLowering(private val context: JvmBackendContext) : ClassLoweringPass { private val symbols = context.ir.symbols.javaAnnotations - private val isCompilingAgainstJdk8OrLater = - context.state.jvmBackendClassResolver.resolveToClassDescriptors( - Type.getObjectType("java/lang/invoke/LambdaMetafactory") - ).isNotEmpty() private val noNewJavaAnnotationTargets = - context.state.noNewJavaAnnotationTargets || !isCompilingAgainstJdk8OrLater + context.state.noNewJavaAnnotationTargets || !context.isCompilingAgainstJdk8OrLater override fun lower(irClass: IrClass) { if (!irClass.isAnnotationClass) return diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt index 8c2ad2d0a15..baa23430e54 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt @@ -93,6 +93,10 @@ class JvmBackendContext( private val localClassType = ConcurrentHashMap() + val isCompilingAgainstJdk8OrLater = state.jvmBackendClassResolver.resolveToClassDescriptors( + Type.getObjectType("java/lang/invoke/LambdaMetafactory") + ).isNotEmpty() + fun getLocalClassType(container: IrAttributeContainer): Type? = localClassType[container.attributeOwnerId]