nushell/src
Wind 387328fe73
Glob: don't allow implicit casting between glob and string (#11992)
# Description
As title, currently on latest main, nushell confused user if it allows
implicit casting between glob and string:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test $x
```
It always expand the glob although `$x` is defined as a string.
This pr implements a solution from @kubouch :
> We could make it really strict and disallow all autocasting between
globs and strings because that's what's causing the "magic" confusion.
Then, modify all builtins that accept globs to accept oneof(glob,
string) and the rules would be that globs always expand and strings
never expand

# User-Facing Changes
After this pr, user needs to use `into glob` to invoke `glob-test`, if
user pass a string variable:
```nushell
let x = "*.txt"
def glob-test [g: glob] { open $g } 
glob-test ($x | into glob)
```
Or else nushell will return an error.
```
 3 │ glob-test $x
   ·           ─┬
   ·            ╰── can't convert string to glob
```

# Tests + Formatting
Done

# After Submitting
Nan
2024-02-28 23:05:35 +08:00
..
tests Glob: don't allow implicit casting between glob and string (#11992) 2024-02-28 23:05:35 +08:00
command.rs wrapping run_repl with catch_unwind and restarting the repl on panic (#11860) 2024-02-22 12:14:10 -06:00
config_files.rs Handle configuration panics (#11935) 2024-02-22 16:25:55 -06:00
ide.rs Make only_buffer_difference: true work (#11488) 2024-01-11 11:58:14 -06:00
logger.rs Use variable names directly in the format strings (#7906) 2023-01-29 19:37:54 -06:00
main.rs wrapping run_repl with catch_unwind and restarting the repl on panic (#11860) 2024-02-22 12:14:10 -06:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00
run.rs allow --login to be used with nu's --commands parameter (#10253) 2023-09-06 13:27:16 -05:00
signals.rs Simplify SIGQUIT handling (#11381) 2023-12-21 17:00:38 +01:00
terminal.rs Do not block signals for child processes (#11402) 2024-01-15 16:08:21 -06:00
test_bins.rs make stderr works for failed external command (#11914) 2024-02-21 21:15:05 +08:00
tests.rs Spread operator for list literals (#11006) 2023-11-22 23:10:08 +02:00

Nushell REPL

This directory contains the main Nushell REPL (read eval print loop) as part of the CLI portion of Nushell, which creates the nu binary itself.

Current versions of the nu binary will use the Nu argument parsing logic to parse the commandline arguments passed to nu, leaving the logic here to be a thin layer around what the core libraries.