Use explicit in/out list types for vectorized commands (#9742)

# Description
All commands that declared `.vectorizes_over_list(true)` now also
explicitly declare the list form of their scalar types.

- Explicit in/out list signatures for nu-command
- Explicit in/out list signatures for nu-cmd-extra
- Add comments about cellpath behavior that is still unresolved


# User-Facing Changes
Our type signatures will now be more explicit about which commands
support vectorization over lists.
On the downside this is a bit more verbose and less systematic.
This commit is contained in:
Stefan Holderbach
2023-07-23 20:46:53 +02:00
committed by GitHub
parent 4dbdb1fe54
commit 17f8ad7210
38 changed files with 247 additions and 23 deletions

View File

@ -47,8 +47,15 @@ impl Command for Fill {
(Type::Float, Type::String),
(Type::String, Type::String),
(Type::Filesize, Type::String),
(Type::List(Box::new(Type::Int)), Type::List(Box::new(Type::String))),
(Type::List(Box::new(Type::Float)), Type::List(Box::new(Type::String))),
(Type::List(Box::new(Type::String)), Type::List(Box::new(Type::String))),
(Type::List(Box::new(Type::Filesize)), Type::List(Box::new(Type::String))),
// General case for heterogeneous lists
(Type::List(Box::new(Type::Any)), Type::List(Box::new(Type::String))),
])
.vectorizes_over_list(true)
.allow_variants_without_examples(true)
.named(
"width",
SyntaxShape::Int,