blaise/stdlib
Graeme Geldenhuys a82269f48c feat(stdlib): add Items default property to TDictionary and TOrderedDictionary
Add GetItem/SetItem methods and an Items[Key: K] default property to
both TDictionary<K,V> and TOrderedDictionary<K,V>.  This enables the
idiomatic d[key] syntax for reads and writes:

  D['one'] := 1;
  WriteLn(D['one']);

GetItem halts on missing key (consistent with index-out-of-bounds in
TList).  SetItem delegates to Add (add-or-update semantics).

The compiler already had full default property infrastructure (parser,
AST, semantic, both codegens) — only the stdlib declarations were
missing.  This is the first non-Integer-typed default property in the
codebase, exercising the generic index type path end-to-end.

Tests: 2 IR codegen tests (GetItem/SetItem emission) + 3 e2e tests
on both backends (integer keys, string keys, update-via-bracket).
3407 tests pass.  All three fixpoints verified.
2026-06-17 15:05:02 +01:00
..
src/main/pascal feat(stdlib): add Items default property to TDictionary and TOrderedDictionary 2026-06-17 15:05:02 +01:00
project.xml refactor: split rtl/ into runtime/ + stdlib/, rename bcl.testing to blaise.testing 2026-05-16 00:51:18 +01:00