From 70ba424ef9853dbcab978faa0952534b27b2725e Mon Sep 17 00:00:00 2001 From: sergeych Date: Fri, 13 Feb 2026 01:36:10 +0300 Subject: [PATCH] Require bytecode for StatementRef evaluation --- .../commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt index ac946a2..3503311 100644 --- a/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt +++ b/lynglib/src/commonMain/kotlin/net/sergeych/lyng/obj/ObjRef.kt @@ -1587,7 +1587,14 @@ class IndexRef( * R-value reference that wraps a Statement (used during migration for expressions parsed as Statement). */ class StatementRef(internal val statement: Statement) : ObjRef { - override suspend fun get(scope: Scope): ObjRecord = statement.execute(scope).asReadonly + override suspend fun get(scope: Scope): ObjRecord { + val bytecode = when (statement) { + is net.sergeych.lyng.bytecode.BytecodeStatement -> statement + is BytecodeBodyProvider -> statement.bytecodeBody() + else -> null + } ?: scope.raiseIllegalState("StatementRef requires bytecode statement") + return bytecode.execute(scope).asReadonly + } } /**