Move isCompilingAgainstJdk8OrLater to JvmBackendContext

This should solve multi-thread synchronization problem
Probably #KT-55483 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-12-20 11:23:06 +01:00
committed by Space Team
parent ac28c0a286
commit fc95889115
2 changed files with 5 additions and 5 deletions
@@ -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
@@ -93,6 +93,10 @@ class JvmBackendContext(
private val localClassType = ConcurrentHashMap<IrAttributeContainer, Type>()
val isCompilingAgainstJdk8OrLater = state.jvmBackendClassResolver.resolveToClassDescriptors(
Type.getObjectType("java/lang/invoke/LambdaMetafactory")
).isNotEmpty()
fun getLocalClassType(container: IrAttributeContainer): Type? =
localClassType[container.attributeOwnerId]