Value classes: treat @JvmInline value classes as inline classes

Report error on value classes without @JvmInline annotation.
Do not check for @JvmInline annotation in value classes since
it breaks reflection.
This commit is contained in:
Ilmir Usmanov
2020-11-19 02:20:37 +01:00
parent 6c68660ffd
commit 92f1681de0
100 changed files with 2668 additions and 53 deletions
@@ -44,6 +44,7 @@ object JsExternalChecker : DeclarationChecker {
descriptor.isData -> "data class"
descriptor.isInner -> "inner class"
descriptor.isInline -> "inline class"
descriptor.isValue -> "value class"
descriptor.isFun -> "fun interface"
DescriptorUtils.isAnnotationClass(descriptor) -> "annotation class"
else -> null
@@ -131,7 +131,7 @@ class ClassTranslator private constructor(
if (classDeclaration is KtClassOrObject) {
when {
descriptor.isData -> JsDataClassGenerator(classDeclaration, context).generate()
descriptor.isInline -> JsInlineClassGenerator(classDeclaration, context).generate()
descriptor.isInline || descriptor.isValue -> JsInlineClassGenerator(classDeclaration, context).generate()
}
}