Task
Implement Map[K, V] as a built-in generic collection type.
Acceptance criteria
- Type syntax:
Map[Str, Int], Map[Str, Bool], etc.
- Non-empty literal infers types:
{"a": 1} → Map[Str, Int]
- Empty literal requires annotation:
var m: Map[Str, Int] = {}
- Mixed-type literals are a compile-time error
K must be hashable — compile-time error if not
- Map is unordered; no iteration order guaranteed
- Methods:
len(), contains(key), get(key), get(key, default), add(key, value), remove(key)
- Mutating methods (
add, remove) require var receiver — compile-time error on const
Spec
See PDP-009: Collection Types.
Task
Implement
Map[K, V]as a built-in generic collection type.Acceptance criteria
Map[Str, Int],Map[Str, Bool], etc.{"a": 1}→Map[Str, Int]var m: Map[Str, Int] = {}Kmust be hashable — compile-time error if notlen(),contains(key),get(key),get(key, default),add(key, value),remove(key)add,remove) requirevarreceiver — compile-time error onconstSpec
See PDP-009: Collection Types.