diff options
| author | Marc Vertes <mvertes@free.fr> | 2026-01-11 19:02:27 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2026-01-11 19:02:27 +0100 |
| commit | 5a04b5512a128bd1805792cca4eabacf5fd49b27 (patch) | |
| tree | a9d4fa09d14bc2b1e17ea2ff14878f556ed41536 /interp | |
| parent | 7520aa4474ea30985cf26631c6bbdebf38484a0d (diff) | |
fix: handle assign statements on map elements
A new token MapAssign is added to implement assignements involving
a map, slice or array, an index key expression and a value expression.
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/interpreter_test.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/interp/interpreter_test.go b/interp/interpreter_test.go index 6c92102..0be2409 100644 --- a/interp/interpreter_test.go +++ b/interp/interpreter_test.go @@ -218,8 +218,13 @@ func TestStruct(t *testing.T) { } func TestMap(t *testing.T) { + src0 := `type M map[string]bool;` run(t, []etest{ - {src: `type M map[string]bool; var m M; m`, res: `map[]`}, // #00 + {src: src0 + `var m M; m`, res: `map[]`}, // #00 + {src: `m := map[string]bool{"foo": true}; m["foo"]`, res: `true`}, // #01 + {src: src0 + `m := M{"xx": true}; m`, res: `map[xx:true]`}, // #02 + {src: src0 + `var m = M{"xx": true}; m`, res: `map[xx:true]`}, // #03 + {src: src0 + `var m = M{"xx": true}; m["xx"] = false`, res: `map[xx:false]`}, // #04 }) } |
