*** Running test-EvalExpr-calls ===== CASE: -c json write (len(42)) ===== json write (len(42)) ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c = len(42) ===== = len(42) ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c call len(42) ===== call len(42) ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c echo $[len(42)] ===== echo $[len(42)] ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c echo $[len(z = 42)] ===== echo $[len(z = 42)] ^ [ -c flag ]:1: fatal: Expected at least 1 typed args, but only got 0 ===== CASE: -c echo @[len(42)] ===== echo @[len(42)] ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c echo @[len(z = 42)] ===== echo @[len(z = 42)] ^ [ -c flag ]:1: fatal: Expected at least 1 typed args, but only got 0 ===== CASE: -c const x = len(42) ===== const x = len(42) ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c setvar x += len(42) ===== setvar x += len(42) ^~ [ -c flag ]:1: fatal: len() expected Str, List, or Dict, got Int ===== CASE: -c var d = {} setvar d[len(42)] = "foo" ===== Traceback (most recent call last): File "/home/uke/oil/bin/oils_for_unix.py", line 263, in sys.exit(main(sys.argv)) File "/home/uke/oil/bin/oils_for_unix.py", line 232, in main return AppBundleMain(argv) File "/home/uke/oil/bin/oils_for_unix.py", line 186, in AppBundleMain return shell.Main(lang, arg_r, environ, login_shell, loader, readline) File "/home/uke/oil/core/shell.py", line 1296, in Main cmd_flags=cmd_eval.IsMainProgram) File "/home/uke/oil/core/main_loop.py", line 336, in Batch was_parsed, status = Batch2(cmd_ev, c_parser, errfmt, cmd_flags=cmd_flags) File "/home/uke/oil/core/main_loop.py", line 375, in Batch2 node = c_parser.ParseLogicalLine() # can raise ParseError File "/home/uke/oil/osh/cmd_parse.py", line 2839, in ParseLogicalLine node = self._ParseCommandLine() File "/home/uke/oil/osh/cmd_parse.py", line 2695, in _ParseCommandLine child = self.ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2619, in ParseAndOr return self._ParseAndOr() File "/home/uke/oil/osh/cmd_parse.py", line 2630, in _ParseAndOr child = self.ParsePipeline() File "/home/uke/oil/osh/cmd_parse.py", line 2578, in ParsePipeline child = self.ParseCommand() File "/home/uke/oil/osh/cmd_parse.py", line 2477, in ParseCommand n9 = self.w_parser.ParseMutation(kw_token, self.var_checker) File "/home/uke/oil/osh/word_parse.py", line 1356, in ParseMutation enode, last_token = self.parse_ctx.ParseMutation(kw_token, self.lexer) File "/home/uke/oil/frontend/parse_lib.py", line 324, in ParseMutation pnode, last_token = e_parser.Parse(lexer, grammar_nt.ysh_mutation) File "/home/uke/oil/ysh/expr_parse.py", line 357, in Parse self.push_parser, lexer) File "/home/uke/oil/ysh/expr_parse.py", line 273, in _PushYshTokens last_token = w_parser.ReadDoubleQuoted(left_token, parts) File "/home/uke/oil/osh/word_parse.py", line 1200, in ReadDoubleQuoted self._ReadLikeDQ(left_token, True, parts) File "/home/uke/oil/osh/word_parse.py", line 1100, in _ReadLikeDQ elif self.token_type == Id.Lit_EscapedDoubleQuote: AttributeError: type object 'Id' has no attribute 'Lit_EscapedDoubleQuote' test/ysh-runtime-errors.sh: fatal: test/ysh-runtime-errors.sh: expected status 3, got 1 FAIL test-EvalExpr-calls