K2: report INCOMPATIBLE_CLASS in JVM

#KT-60795
This commit is contained in:
Alexander Udalov
2023-08-01 01:12:34 +02:00
committed by Space Team
parent db8fb30343
commit 7d60b5df43
19 changed files with 262 additions and 29 deletions
@@ -135,7 +135,7 @@ class JvmClassFileBasedSymbolProvider(
val kotlinClass = result.kotlinJvmBinaryClass
if (kotlinClass.classHeader.kind != KotlinClassHeader.Kind.CLASS || kotlinClass.classId != classId) return null
val data = kotlinClass.classHeader.data ?: return null
val data = kotlinClass.classHeader.data ?: kotlinClass.classHeader.incompatibleData ?: return null
val strings = kotlinClass.classHeader.strings ?: return null
val (nameResolver, classProto) = JvmProtoBufUtil.readClassDataFrom(data, strings)
@@ -144,7 +144,7 @@ class JvmClassFileBasedSymbolProvider(
classProto,
JvmBinaryAnnotationDeserializer(session, kotlinClass, kotlinClassFinder, result.byteContent),
moduleDataProvider.getModuleData(kotlinClass.containingLibrary?.toPath()),
KotlinJvmBinarySourceElement(kotlinClass),
KotlinJvmBinarySourceElement(kotlinClass, kotlinClass.incompatibility),
classPostProcessor = { loadAnnotationsFromClassFile(result, it) }
)
}