summaryrefslogtreecommitdiff
path: root/interp/interpreter_test.go
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2026-01-11 19:02:27 +0100
committerMarc Vertes <mvertes@free.fr>2026-01-11 19:02:27 +0100
commit5a04b5512a128bd1805792cca4eabacf5fd49b27 (patch)
treea9d4fa09d14bc2b1e17ea2ff14878f556ed41536 /interp/interpreter_test.go
parent7520aa4474ea30985cf26631c6bbdebf38484a0d (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/interpreter_test.go')
-rw-r--r--interp/interpreter_test.go7
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
})
}