Search in sources :

Example 1 with JvmBytecodeBinaryVersion

use of org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion in project kotlin by JetBrains.

the class KotlinTypeMapper method checkOwnerCompatibility.

private void checkOwnerCompatibility(@NotNull FunctionDescriptor descriptor) {
    if (!(descriptor instanceof DeserializedCallableMemberDescriptor))
        return;
    KotlinJvmBinaryClass ownerClass = null;
    DeclarationDescriptor container = descriptor.getContainingDeclaration();
    if (container instanceof DeserializedClassDescriptor) {
        SourceElement source = ((DeserializedClassDescriptor) container).getSource();
        if (source instanceof KotlinJvmBinarySourceElement) {
            ownerClass = ((KotlinJvmBinarySourceElement) source).getBinaryClass();
        }
    } else if (container instanceof LazyJavaPackageFragment) {
        SourceElement source = ((LazyJavaPackageFragment) container).getSource();
        if (source instanceof KotlinJvmBinaryPackageSourceElement) {
            ownerClass = ((KotlinJvmBinaryPackageSourceElement) source).getRepresentativeBinaryClass();
        }
    }
    if (ownerClass != null) {
        JvmBytecodeBinaryVersion version = ownerClass.getClassHeader().getBytecodeVersion();
        if (!version.isCompatible()) {
            incompatibleClassTracker.record(ownerClass);
        }
    }
}
Also used : DeserializedCallableMemberDescriptor(org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor) LazyJavaPackageFragment(org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment) JvmBytecodeBinaryVersion(org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion) DeserializedClassDescriptor(org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor)

Aggregations

JvmBytecodeBinaryVersion (org.jetbrains.kotlin.load.java.JvmBytecodeBinaryVersion)1 LazyJavaPackageFragment (org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageFragment)1 DeserializedCallableMemberDescriptor (org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor)1 DeserializedClassDescriptor (org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedClassDescriptor)1