From 939e391a203839369cc4a18a76b0c842516832b8 Mon Sep 17 00:00:00 2001 From: sergeych Date: Mon, 2 Jun 2025 06:28:40 +0400 Subject: [PATCH] fixed namespace/Math issue --- .../commonMain/kotlin/net/sergeych/ling/Context.kt | 11 ++++------- .../src/commonMain/kotlin/net/sergeych/ling/Obj.kt | 6 +++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt index b086085..fe7953d 100644 --- a/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Context.kt @@ -64,13 +64,10 @@ class Context( return StoredObj(value, isMutable).also { objects.put(name, it) } } - fun getOrCreateNamespace(name: String): ObjNamespace = - (objects.getOrPut(name) { - StoredObj( - ObjNamespace(name), - isMutable = false - ) - }.value as ObjNamespace) + fun getOrCreateNamespace(name: String): ObjClass { + val ns = objects.getOrPut(name) { StoredObj(ObjNamespace(name), isMutable = false) }.value + return ns!!.objClass + } inline fun addVoidFn(vararg names: String, crossinline fn: suspend Context.() -> Unit) { addFn(*names) { diff --git a/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt b/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt index 2e871cc..c5c429f 100644 --- a/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt +++ b/library/src/commonMain/kotlin/net/sergeych/ling/Obj.kt @@ -292,8 +292,12 @@ fun Obj.toBool(): Boolean = data class ObjNamespace(val name: String) : Obj() { + override val objClass by lazy { ObjClass(name) } + + override fun inspect(): String = "Ns[$name]" + override fun toString(): String { - return "namespace ${name}" + return "package $name" } }