===== CASE: var sq = / 'foo'+ / ===== ===== CASE: var dq = / "foo"+ / echo $dq ===== var dq = / "foo"+ / ^ [ -c flag ]:2: fatal: POSIX EREs don't have groups without capture, so this node needs () around it. ===== CASE: var dq = / ("foo")+ / echo $dq var dq2 = / <"foo">+ / echo $dq2 ===== (foo)+ (foo)+ ===== CASE: var literal = "foo" var svs = / $literal+ / echo $svs ===== var svs = / $literal+ / ^~~~~~~~ [ -c flag ]:3: fatal: POSIX EREs don't have groups without capture, so this node needs () around it. ===== CASE: var literal = "foo" var bvs = / ${literal}+ / echo $bvs ===== var bvs = / ${literal}+ / ^~ [ -c flag ]:3: fatal: POSIX EREs don't have groups without capture, so this node needs () around it. ===== CASE: echo hi; const y = 2 + x + 3 ===== hi echo hi; const y = 2 + x + 3 ^ [ -c flag ]:1: fatal: Undefined variable 'x' ===== CASE: if (x) { echo hello } ===== if (x) { echo hello } ^ [ -c flag ]:1: fatal: Undefined variable 'x' ===== CASE: if ($x) { echo hi } ===== if ($x) { echo hi } ^~ [ -c flag ]:1: fatal: Undefined variable 'x' ===== CASE: if (${x}) { echo hi } ===== if (${x}) { echo hi } ^ [ -c flag ]:1: fatal: Undefined variable 'x' ===== CASE: x = / @undef /; echo hi ===== x = / @undef /; echo hi ^~~~~~ [ -c flag ]:1: fatal: Can't splice 'undef' ===== CASE: var x = undef; echo $x ===== var x = undef; echo $x ^~~~~ [ -c flag ]:1: fatal: Undefined variable 'undef' ===== CASE: setvar a = undef ===== setvar a = undef ^~~~~ [ -c flag ]:1: fatal: Undefined variable 'undef' ===== CASE: echo $maybe("foo") ===== echo $maybe("foo") ^~~~ [ -c flag ]:1: fatal: Expected function to return a bool, int, float, or string. Got ===== CASE: echo $identity({key: "val"}) ===== echo $identity({key: "val"}) ^~~~ [ -c flag ]:1: fatal: Expected function to return a bool, int, float, or string. Got ===== CASE: write -- @identity([{key: "val"}]) ===== write -- @identity([{key: "val"}]) ^~~~~ [ -c flag ]:1: fatal: Expected function to return a bool, int, float, or string. Got ===== CASE: const x = [1, 2]; echo $x ===== const x = [1, 2]; echo $x ^~~~ [ -c flag ]:1: fatal: Expected function to return a bool, int, float, or string. Got ===== CASE: echo $[42 / 0 ] ===== echo $[42 / 0 ] ^ [ -c flag ]:1: fatal: divide by zero ===== CASE: var d = {}; var item = d->nonexistent ===== var d = {}; var item = d->nonexistent ^~ [ -c flag ]:1: fatal: dict entry not found ===== CASE: var d = {}; var item = d["nonexistent"] ===== var d = {}; var item = d["nonexistent"] ^~~ [ -c flag ]:1: fatal: dict entry not found ===== CASE: var a = []; setvar item = a[1] ===== var a = []; setvar item = a[1] ^~~~~~ [ -c flag ]:1: fatal: index out of range ===== CASE: const x = 42 / 0 ===== const x = 42 / 0 ^ [ -c flag ]:1: fatal: divide by zero ===== CASE: var x = "z" ++ $(false) ===== var x = "z" ++ $(false) ^~~~~ [ -c flag ]:1: errexit PID 16414: Command failed with status 1 [ -c flag ]:1: errexit PID 16410: Command Sub exited with status 1 ===== CASE: case $[42 / 0] { (*) echo hi ;; }; echo OK ===== case $[42 / 0] { (*) echo hi ;; }; echo OK ^ [ -c flag ]:1: fatal: divide by zero ===== CASE: var d = {}; for x in $[d->zzz] { echo hi } ===== var d = {}; for x in $[d->zzz] { echo hi } ^~ [ -c flag ]:1: fatal: dict entry not found