35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
import "@std/mem"
|
|
import "@std/testing"
|
|
|
|
exposes_typed_declaration_views test {
|
|
builder := init_builder(mem.c_allocator, "value :: 42")
|
|
defer deinit_builder(&builder)
|
|
|
|
value_name :: Span{ start = 0, end = 5 }
|
|
value :: try add_literal(&builder, .int, Span{ start = 9, end = 11 })
|
|
declaration :: try add_statement_decl(
|
|
&builder,
|
|
Span{ start = 0, end = 11 },
|
|
value_name,
|
|
null,
|
|
.constant,
|
|
value,
|
|
)
|
|
declarations [1]NodeId := [declaration]
|
|
package :: try add_package(&builder, Span{ start = 0, end = 11 }, declarations[..])
|
|
tree := finish(&builder, package)
|
|
defer deinit(&tree)
|
|
|
|
try testing.expect_equal(1, package_decl_count(&tree))
|
|
decl :: package_decl(&tree, 0)
|
|
try testing.expect_equal(DeclKind.statement, decl_kind(&tree, decl))
|
|
|
|
statement :: statement_decl(&tree, decl)
|
|
try testing.expect_equal(value_name.start, statement.name.start)
|
|
try testing.expect_equal(value_name.end, statement.name.end)
|
|
try testing.expect_equal(Mutability.constant, statement.mutability)
|
|
try testing.expect_equal(null, statement.type)
|
|
try testing.expect_equal(ExprKind.literal_int, expr_kind(&tree, statement.initializer))
|
|
try testing.expect_equal("value", source_text(&tree, statement.name))
|
|
}
|