extern generics classes fix, documentation on extern classes updated

This commit is contained in:
sergeych committed 2026-03-15 04:32:06 +03:00
1 parent 74eb8ff082
commit 8e0442670d
10 files changed
+28 -58

No files matched your search

+1 -14
View File
@@ -30,8 +30,8 @@ import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.encodeToJsonElement
import net.sergeych.lyng.*
import net.sergeych.lyng.obj.*
import net.sergeych.lyng.thisAs
import net.sergeych.lyng.pacman.InlineSourcesImportProvider
import net.sergeych.lyng.thisAs
import net.sergeych.mp_tools.globalDefer
import net.sergeych.tools.bm
import kotlin.test.*
@@ -3097,19 +3097,6 @@ class ScriptTest {
)
}
@Test
fun testExternClassMembersMustBeExplicitlyExtern() = runTest {
assertFailsWith<ScriptError> {
eval(
"""
extern class HostClass {
fun doSomething(): Int
}
""".trimIndent()
)
}
}
@Test
fun testExternExtension() = runTest {
eval(
+4 -5
View File
@@ -621,24 +621,23 @@ class TypesTest {
eval("""
extern fun f<T>(x: T): T
extern class Cell<T> {
extern var value: T
var value: T
}
""")
}
@Test
fun testExternClassMemberMustBeExternMessage() = runTest {
fun testExternClassMemberInitializerStillFailsWithoutExplicitExtern() = runTest {
val e = assertFailsWith<ScriptError> {
eval(
"""
extern class Cell<T> {
var value: T
var value: T = 1
}
""".trimIndent()
)
}
assertTrue(e.message?.contains("must be declared extern") == true)
assertTrue(e.message?.contains("extern var value") == true)
assertTrue(e.message?.contains("extern variable value cannot have an initializer or delegate") == true)
}
// @Test fun nonTrivialOperatorsTest() = runTest {