Why this fires¶
A titled test must have one title and retain its real source declaration identity through expansion and compilation.
test "empty cart" {
assert_eq(0, 0)
}Do not add another display label to a titled test:
@test(display: "another title")
test "empty cart" {}Keep test flags such as skip, only, tags, and should_throw on @test; keep the readable label in the title. Existing named @test functions retain their display labels.
Compiler clients must use the configured source pipeline and actual resolved module identity. Parser AST fields, title text, offsets, copied generated names, and public metadata do not establish an executable test identity. A newly materialized declaration needs its own structural occurrence. The exact selector returned by discovery selects that declaration.
Invalid, empty, interpolated, byte, or control-containing title literals are parser errors. They are distinct from this semantic diagnostic.