[JS, Frontend] Forbid @JsExporting inline/value classes

Previously the compiler would just crash.

#KT-46202 Fixed
This commit is contained in:
Sergej Jaskiewicz
2021-09-06 13:08:08 +03:00
parent 5eaea04bc8
commit f62ffeaa0a
3 changed files with 49 additions and 0 deletions
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.resolve.checkers.DeclarationCheckerContext
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal
import org.jetbrains.kotlin.resolve.descriptorUtil.isExtensionProperty
import org.jetbrains.kotlin.resolve.inline.isInlineWithReified
import org.jetbrains.kotlin.resolve.isInlineClass
import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.types.isDynamic
import org.jetbrains.kotlin.types.typeUtil.*
@@ -111,6 +112,9 @@ object JsExportDeclarationChecker : DeclarationChecker {
ENUM_CLASS -> "enum class"
INTERFACE -> if (descriptor.isExternal) null else "interface"
ANNOTATION_CLASS -> "annotation class"
CLASS -> if (descriptor.isInlineClass()) {
"${if (descriptor.isInline) "inline " else ""}${if (descriptor.isValue) "value " else ""}class"
} else null
else -> null
}