nushell/crates/nu-protocol/src
Artemiy a9582e1c62
Nothing return type (#9935)
# Description
Fix #9928. When parsing input/output types `nothing` was incorrectly
coerced to `any`. This is addressed by changing how
[to_type](0ad1ad4277/crates/nu-protocol/src/syntax_shape.rs (L121))
method handles `nothing` syntax shape. Also `range` syntax shape is
addressed the same way.

# User-Facing Changes
`nothing` and `range` are correctly displayed in help and strictly
processed by type checking. This will break definitions that were not in
fact output nothing or range and incorrect uses of functions which input
nothing or range.

Examples of correctly defined functions:

![image](https://github.com/nushell/nushell/assets/17511668/d9f73438-d8a7-487f-981a-7e791b42766e)

![image](https://github.com/nushell/nushell/assets/17511668/2d5fe3a2-94be-4d25-9522-2ea38e528fe4)

Examples of incorrect definitions and uses of functions:

![image](https://github.com/nushell/nushell/assets/17511668/6a2f9fba-abfa-47fe-8b53-bb348e532cd8)

![image](https://github.com/nushell/nushell/assets/17511668/b1fbf9f6-fd75-4b80-9f38-26cc7c2ecc25)

![image](https://github.com/nushell/nushell/assets/17511668/718ef98b-3d7a-433d-af97-39a225ef34e5)


# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect -A clippy::result_large_err` to check that
you're using the standard code style
- `cargo test --workspace` to check that all tests pass
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->

# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2023-08-07 18:10:01 +12:00
..
ast Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
engine Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
value Replace &Span with Span since Span is Copy (#9770) 2023-07-31 21:47:46 +02:00
alias.rs Document and critically review ShellError variants - Ep. 3 (#8340) 2023-03-06 18:33:09 +01:00
cli_error.rs remove nu_cli crate dependency from nu_std (#8807) 2023-04-08 13:53:43 +02:00
config.rs Add an option to set header on border (style) (#9920) 2023-08-04 13:50:47 -05:00
did_you_mean.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
example.rs remove unused imports: Deserialize, Serialize compiler warning for nu-protocol/src/example.rs (#8514) 2023-03-18 11:45:12 -07:00
exportable.rs Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
id.rs Add virtual path abstraction layer (#9245) 2023-05-23 23:48:50 +03:00
lev_distance.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
lib.rs Suggest existing variables on not found (#8902) 2023-05-02 18:17:14 +03:00
module.rs Module: support defining const and use const variables inside of function (#9773) 2023-08-01 07:09:52 +08:00
parse_error.rs Input output checking (#9680) 2023-07-14 15:20:35 +12:00
pipeline_data.rs Revert #8395 "Treat empty pipelines as pass-through" (#9472) 2023-06-20 20:27:18 +12:00
plugin_signature.rs Remove Signature.vectorizes_over_list entirely (#9777) 2023-07-26 23:34:43 +02:00
shell_error.rs Turn bare URLs into cliclable links (#9854) 2023-07-30 22:50:25 +02:00
signature.rs Categorification: move Path commands out of the default category (#9937) 2023-08-07 16:03:23 +12:00
span.rs Use variable names directly in the format strings (#7906) 2023-01-29 19:37:54 -06:00
syntax_shape.rs Nothing return type (#9935) 2023-08-07 18:10:01 +12:00
ty.rs allow tables to have annotations (#9613) 2023-07-07 11:06:09 +02:00
util.rs move BufferedReader out of nu-command (#7697) 2023-01-06 15:22:17 -08:00
variable.rs Fix broken constants in scopes (#9679) 2023-07-14 00:02:05 +03:00