From f848d79d39794e06739f93091ff174e77517d5b7 Mon Sep 17 00:00:00 2001 From: sergeych Date: Fri, 16 Jan 2026 20:43:10 +0300 Subject: [PATCH] more OO tests --- lynglib/src/commonTest/kotlin/OOTest.kt | 27 ++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/lynglib/src/commonTest/kotlin/OOTest.kt b/lynglib/src/commonTest/kotlin/OOTest.kt index dbc48a1..6021f37 100644 --- a/lynglib/src/commonTest/kotlin/OOTest.kt +++ b/lynglib/src/commonTest/kotlin/OOTest.kt @@ -17,6 +17,7 @@ import kotlinx.coroutines.test.runTest import net.sergeych.lyng.Script +import net.sergeych.lyng.Statement import net.sergeych.lyng.eval import net.sergeych.lyng.obj.ObjInstance import net.sergeych.lyng.obj.ObjList @@ -823,7 +824,7 @@ class OOTest { @Test fun testOverrideVisibilityRules2() = runTest { val scope = Script.newScope() - scope.eval(""" + val fn = scope.eval(""" interface Base { abstract fun foo() @@ -855,18 +856,16 @@ class OOTest { } assertEquals("bar!", Derived().bar()) val d = Derived2() - assertEquals(42, d.bar()) - assertEquals(43, d.bar()) - """.trimIndent()) - scope.createChildScope().eval(""" - assertEquals("bar!", Derived().bar()) - assertEquals(42, Derived2().bar()) - import lyng.serialization - for( i in 1..100 ) { - val d2 = Lynon.decode(Lynon.encode(Derived2())) - assertEquals(42, d2.bar()) - assertEquals(43, d2.bar()) - } - """.trimIndent()) + + fun callBar() = d.bar() + + assertEquals(42, callBar()) + assertEquals(43, callBar()) + + callBar + """.trimIndent()) as Statement + val s2 = Script.newScope() + assertEquals(44L, fn.invoke(scope, fn).toKotlin(s2)) + assertEquals(45L, fn.invoke(s2, fn).toKotlin(s2)) } } \ No newline at end of file