nushell/tests/repl
Devyn Cairns 18772b73b3
Add parse error for external commands used in assignment without caret (#13585)
# Description

As per our Wednesday meeting, this adds a parse error when something
that would be parsed as an external call is present at the top level,
unless the head of the external call begins with a caret (to make it
explicit).

I tried to make the error quite descriptive about what should be done.

# User-Facing Changes
These now cause a parse error:

```nushell
$foo = bar
$foo = `bar`
```

These would have been interpreted as strings before this version, but
now they'd be interpreted as external calls. This behavior is consistent
with `let`/`mut` (which is unaffected by this change).

Here is an example of the error:

```
Error:   × External command calls must be explicit in assignments
   ╭─[entry #3:1:8]
 1 │ $foo = bar
   ·        ─┬─
   ·         ╰── add a caret (^) before the command name if you intended to run and capture its output
   ╰────
  help: the parsing of assignments was changed in 0.97.0, and this would have previously been treated as a string.
        Alternatively, quote the string with single or double quotes to avoid it being interpreted as a command name. This
        restriction may be removed in a future release.
```

# Tests + Formatting

Tests added to cover the change. Note made about it being temporary.
2024-08-12 10:24:23 +02:00
..
mod.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_bits.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_cell_path.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_commandline.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_conditionals.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_config.rs Make assignment and const consistent with let/mut (#13385) 2024-07-30 18:55:22 -05:00
test_config_path.rs Path migration part 4: various tests (#13373) 2024-08-03 10:09:13 +02:00
test_converters.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_custom_commands.rs Make parsing for unknown args in known externals like normal external calls (#13414) 2024-07-21 01:32:36 -07:00
test_engine.rs Fix $in in range expressions (#13447) 2024-07-25 18:28:44 +08:00
test_env.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_help.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_hiding.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_ide.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_iteration.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_known_external.rs Make parsing for unknown args in known externals like normal external calls (#13414) 2024-07-21 01:32:36 -07:00
test_math.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_modules.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_parser.rs Add parse error for external commands used in assignment without caret (#13585) 2024-08-12 10:24:23 +02:00
test_ranges.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_regex.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_signatures.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_spread.rs Rewrite run_external.rs (#12921) 2024-05-23 02:05:27 +00:00
test_stdlib.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_strings.rs Restrict strings beginning with quote should also ending with quote (#13131) 2024-06-28 09:47:12 +08:00
test_table_operations.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00
test_type_check.rs Overhaul $in expressions (#13357) 2024-07-17 16:02:42 -05:00
tests.rs Merged tests to produce a single binary (#12826) 2024-05-13 13:37:53 +00:00