lazy messages for check/require

This commit is contained in:
sergeych committed 2025-12-21 22:49:35 +01:00
1 parent 3dfe98a93d
commit 92cb088f36
4 files changed
+32 -5

No files matched your search

@@ -253,16 +253,18 @@ class Script(
addFn("require") {
val condition = requiredArg<ObjBool>(0)
if (!condition.value) {
val message = args.list.getOrNull(1)?.toString() ?: "requirement not met"
raiseIllegalArgument(message)
var message = args.list.getOrNull(1)
if( message is Statement ) message = message.execute(this)
raiseIllegalArgument(message?.toString() ?: "requirement not met")
}
ObjVoid
}
addFn("check") {
val condition = requiredArg<ObjBool>(0)
if (!condition.value) {
val message = args.list.getOrNull(1)?.toString() ?: "check failed"
raiseIllegalState(message)
var message = args.list.getOrNull(1)
if( message is Statement ) message = message.execute(this)
raiseIllegalState(message?.toString() ?: "check failed")
}
ObjVoid
}
@@ -4297,4 +4297,14 @@ class ScriptTest {
assertEquals(tf(...{ x: 3, y: 4, z: 50 }), "x=3, y=4, z=50")
""".trimIndent())
}
// @Test
// fun testSplatAssignemnt() = runTest {
// eval("""
// val abc = [1, 2, 3]
// val [a, b, c] = ...abc
// println(a, b, c)
// """.trimIndent())
// }
}