JVM_IR: implement isCompiledToJvm8OrHigher on IrClass
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.codegen
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.SourceElement
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||
import org.jetbrains.kotlin.load.kotlin.FileBasedKotlinClass
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
|
||||
@@ -99,8 +100,10 @@ abstract class TypeAnnotationCollector<T>(val context: TypeSystemCommonBackendCo
|
||||
abstract fun KotlinTypeMarker.extractAnnotations(): List<T>
|
||||
|
||||
fun isCompiledToJvm8OrHigher(descriptor: ClassDescriptor?): Boolean =
|
||||
(descriptor as? DeserializedClassDescriptor)?.let { classDescriptor ->
|
||||
((classDescriptor.source as? KotlinJvmBinarySourceElement)?.binaryClass as? FileBasedKotlinClass)?.classVersion ?: 0 >= Opcodes.V1_8
|
||||
} ?: true
|
||||
(descriptor as? DeserializedClassDescriptor)?.let { classDescriptor -> isCompiledToJvm8OrHigher(classDescriptor.source) }
|
||||
?: true
|
||||
|
||||
fun isCompiledToJvm8OrHigher(source: SourceElement): Boolean =
|
||||
(source !is KotlinJvmBinarySourceElement ||
|
||||
(source.binaryClass as? FileBasedKotlinClass)?.classVersion ?: 0 >= Opcodes.V1_8)
|
||||
}
|
||||
Reference in New Issue
Block a user