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:
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 = """
|
||||
|
||||
Reference in new issue
Block a user