Skip to content

Commit 31ecef1

Browse files
qwwdfsadudalov
andauthored
Fail-fast if it's not possible to read @metadata from Kotlin class in… (#67)
* Fail-fast if it's not possible to read @metadata from Kotlin class instead of producing incorrect visibilities and dumps Co-authored-by: Alexander Udalov <udalov@users.noreply.github.com>
1 parent 9ce55a7 commit 31ecef1

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/main/kotlin/api/KotlinMetadataVisibilities.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ package kotlinx.validation.api
77

88
import kotlinx.metadata.*
99
import kotlinx.metadata.jvm.*
10+
import kotlinx.metadata.jvm.KotlinClassHeader.Companion.COMPATIBLE_METADATA_VERSION
1011
import org.objectweb.asm.tree.ClassNode
1112

1213
class ClassVisibility(
@@ -59,6 +60,14 @@ val ClassNode.kotlinMetadata: KotlinClassMetadata?
5960
)
6061
}
6162
return KotlinClassMetadata.read(header)
63+
?: error(
64+
"""
65+
Incompatible version of Kotlin metadata.
66+
Maximal supported Kotlin metadata version: ${COMPATIBLE_METADATA_VERSION.joinToString(".")},
67+
$name Kotlin metadata version: ${header.metadataVersion.joinToString(".")}.
68+
As a workaround, it is possible to manually update 'kotlinx-metadata-jvm' version in your project.
69+
""".trimIndent()
70+
)
6271
}
6372

6473

0 commit comments

Comments
 (0)