diff options
| author | Marc Vertes <mvertes@free.fr> | 2026-01-26 18:44:29 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2026-01-26 18:44:29 +0100 |
| commit | aa5861917ac2543f85bf4cfefbb69cf501d4de41 (patch) | |
| tree | 94122ea3167c295da822f03d075a085b4f87e9ea /interp | |
| parent | ece8bdbc45afc3ea626db884ea3283d9a8395ae5 (diff) | |
Do not consider assign operators in expression handling, they are
part of statements.
Isolate parsing of left hand side and right hand side in assignments.
Diffstat (limited to 'interp')
| -rw-r--r-- | interp/interpreter_test.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/interp/interpreter_test.go b/interp/interpreter_test.go index 30f3fac..e6274a4 100644 --- a/interp/interpreter_test.go +++ b/interp/interpreter_test.go @@ -72,10 +72,13 @@ func TestExpr(t *testing.T) { func TestAssign(t *testing.T) { run(t, []etest{ - {src: "var a int = 1; a", res: "1"}, // #00 - {src: "var a, b int = 1, 2; b", res: "2"}, // #01 - {src: "var a, b int; a, b = 1, 2; b", res: "2"}, // #02 - {src: "a, b := 1, 2; b", res: "2"}, // #03 + {src: "var a int = 1; a", res: "1"}, // #00 + {src: "var a, b int = 1, 2; b", res: "2"}, // #01 + {src: "var a, b int; a, b = 1, 2; b", res: "2"}, // #02 + {src: "a, b := 1, 2; b", res: "2"}, // #03 + {src: "func f() int {return 2}; a := f(); a", res: "2"}, // #04 + // {src: "func f() (int, int) {return 2, 3}; a, b := f(), b", res: "3"}, // #05 + // {src: "func f() (int, int) {return 2, 3}; var a, b = f(), b", res: "3"}, // #06 }) } @@ -114,6 +117,7 @@ func TestFunc(t *testing.T) { {src: "func f(a, b, c int) int {return a+b-c} ; f(7, 1, 3)", res: "5"}, // #07 {src: "var a int; func f() {a = a+2}; f(); a", res: "2"}, // #08 {src: "var f = func(a int) int {return a+3}; f(2)", res: "5"}, // #09 + {src: "var a int; func f(a int) {a = a+2}; f(); a", res: "0"}, // #10 }) } |
