Refactored ObjRef evaluation logic for enhanced performance and consistency across unary, binary, and field operations. Added evalValue overrides for more streamlined value resolution.

This commit is contained in:
sergeych committed 2026-01-11 01:42:53 +01:00
1 parent 827df9c8cd
commit 6b957ae6a3
28 files changed
+1339 -506

No files matched your search

@@ -419,6 +419,25 @@ class MiniAstTest {
assertEquals("Int", innerArg.segments.last().name)
}
@Test
fun verify_class_member_structure() = runTest {
val code = """
class A {
fun member() {}
val field = 1
}
""".trimIndent()
val (_, sink) = compileWithMini(code)
val mini = sink.build()!!
println("[DEBUG_LOG] Mini declarations: ${mini.declarations.map { it.name }}")
assertEquals(1, mini.declarations.size, "Should only have one top-level declaration (class A)")
val cls = mini.declarations[0] as MiniClassDecl
assertEquals("A", cls.name)
assertEquals(2, cls.members.size, "Class A should have 2 members (member() and field)")
assertTrue(cls.members.any { it.name == "member" && it is MiniMemberFunDecl })
assertTrue(cls.members.any { it.name == "field" && it is MiniMemberValDecl })
}
@Test
fun inferTypeForValWithInference() = runTest {
val code = """