From 6295cea6ad8984abd3ca74318ef5b356513f8358 Mon Sep 17 00:00:00 2001 From: sergeych Date: Sun, 15 Feb 2026 01:29:13 +0300 Subject: [PATCH] Test module-frame lookup in bridge resolver --- .../commonTest/kotlin/BridgeResolverTest.kt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/lynglib/src/commonTest/kotlin/BridgeResolverTest.kt b/lynglib/src/commonTest/kotlin/BridgeResolverTest.kt index a90e4c8..1d6df5d 100644 --- a/lynglib/src/commonTest/kotlin/BridgeResolverTest.kt +++ b/lynglib/src/commonTest/kotlin/BridgeResolverTest.kt @@ -4,6 +4,8 @@ import kotlin.test.Test import kotlin.test.assertEquals import kotlinx.coroutines.test.runTest import net.sergeych.lyng.bridge.BridgeCallByName +import net.sergeych.lyng.bridge.LookupSpec +import net.sergeych.lyng.bridge.LookupTarget import net.sergeych.lyng.bridge.resolver import net.sergeych.lyng.obj.ObjInstance import net.sergeych.lyng.obj.ObjInt @@ -80,4 +82,27 @@ class BridgeResolverTest { val result = extHandle.call(facade, newThisObj = fObj) as ObjInt assertEquals(3, result.value) } + + @Test + fun testModuleFrameLookup() = runTest { + val im = Script.defaultImportManager.copy() + val module = im.newModuleAt(Pos.builtIn) + module.eval( + """ + var x = 7 + """.trimIndent() + ) + val child = module.createChildScope() + child.eval( + """ + var x = 1 + """.trimIndent() + ) + + val facade = child.asFacade() + val resolver = facade.resolver() + val handle = resolver.resolveVal("x", LookupSpec(targets = setOf(LookupTarget.ModuleFrame))) + val result = handle.get(facade) as ObjInt + assertEquals(7, result.value) + } }