tests: the map-scoped tables' example and rejected fixtures

examples/lang/permap (two maps, a chunked table with a negative, a positive and a
missing chunk, constants and fn by name, a nested list, a cross-row @Ref, a reload
shrinking in place, a bad file's file:line:col; built under arena strict with an @On
frame root), --check fixtures for a wrong field, a wrong type, an unknown constant and
a dangling cross-row @Ref, @Ref(PerMap) on an int, as PREFIX, and a @Unit warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-29 21:03:02 +03:00
parent 2f4860ae71
commit 5a751434ac
17 changed files with 181 additions and 0 deletions

View file

@ -0,0 +1,5 @@
tent { model: MDL_TENT, home: "fire" }
lamp { model: 1, colour: 3 }
crate { model: "big" }
bench { model: MDL_BENCH }
sign { model: 2, scale: 0.5, home: "nowhere" }

View file

@ -0,0 +1 @@
fire { x: 1.0 }

View file

@ -0,0 +1,2 @@
# permap_maps.ludic's maps, each file with one thing `ludicc --check` must refuse
maps "maps"

View file

@ -0,0 +1,19 @@
# permap_maps.ludic - `ludicc --check` reads every map directory and checks its tables against their
# records. maps/m1 holds four mistakes, each refused at its file, line and column: a field the
# record lacks, a value of the wrong type, a constant nobody declared, and a key naming no row.
program PerMapMaps {
numbers float
const MDL_TENT: int = 7
property Spot { key: string = "", x: float = 0.0 }
@PerMap registry Spots of Spot from "spots.lres"
property PropRow {
key: string = ""
model: int = 0
scale: float = 1.0
@Ref(Spots) home: string = ""
}
@PerMap @ByKey registry Props of PropRow from "props.lres"
entry (props: mut Props) {
print(`{props_load(props, "m1")}`)
}
}