nushell/crates
NotTheDr01ds a2873336bb
Fix do signature (#13216)
Recommend holding until after #13125 is fully digested and *possibly*
until 0.96.

# Description

Fixes one of the issues described in #13125 

The `do` signature included a `SyntaxShape:Any` as one of the possible
first-positional types. This is incorrect. `do` only takes a closure as
a positional. This had the result of:

1. Moving what should have been a parser error to evaluation-time

   ## Before

   ```nu
   > do 1
   Error: nu:🐚:cant_convert

     × Can't convert to Closure.
      ╭─[entry #26:1:4]
    1 │ do 1
      ·    ┬
      ·    ╰── can't convert int to Closure
      ╰────
   ```

   ## After

   ```nu
   > do 1
   Error: nu::parser::parse_mismatch

     × Parse mismatch during operation.
      ╭─[entry #5:1:4]
    1 │ do 1
      ·    ┬
      ·    ╰── expected block, closure or record
      ╰────
   ```  

2. Masking a bad test in `std assert`

This is a bit convoluted, but `std assert` tests included testing
`assert error` to make sure it:

* Asserts on bad code
* Doesn't assert on good code

The good-code test was broken, and was essentially bad-code (really
bad-code) that wasn't getting caught due to the bad signature.

Fixing this resulted in *parse time* failures on every call to
`test_asserts` (not something that particular test was designed to
handle.

This PR also fixes the test case to properly evaluate `std assert error`
against a good code path.

# User-Facing Changes

* Error-type returned (possible breaking change?)

# Tests + Formatting

- 🟢 `toolkit fmt`
- 🟢 `toolkit clippy`
- 🟢 `toolkit test`
- 🟢 `toolkit test stdlib`

# After Submitting

N/A
2024-06-29 16:17:06 -05:00
..
nu_plugin_custom_values Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_example Use IntoValue and FromValue derive macros in nu_plugin_example for example usage (#13220) 2024-06-26 17:50:14 -05:00
nu_plugin_formats Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_gstat Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_inc Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_nu_example Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_polars Polars 0.41 Upgrade (#13238) 2024-06-28 06:37:45 -05:00
nu_plugin_python Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu_plugin_query feat: add query webpage-info to plugin_nu_query (#13252) 2024-06-29 16:13:31 -05:00
nu_plugin_stress_internals Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-cli Converted perf function to be a macro. Utilized the perf macro within the polars plugin. (#13224) 2024-06-27 18:56:56 -05:00
nu-cmd-base Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-cmd-extra Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-cmd-lang Fix do signature (#13216) 2024-06-29 16:17:06 -05:00
nu-cmd-plugin Add context to the I/O error messages in nu_cmd_plugin::util::modify_plugin_file() (#13259) 2024-06-27 23:49:06 -07:00
nu-color-config Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-command add str deunicode command (#13270) 2024-06-29 16:12:34 -05:00
nu-derive-value Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-engine Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-explore Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-glob Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-json Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-lsp Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-parser Restrict strings beginning with quote should also ending with quote (#13131) 2024-06-28 09:47:12 +08:00
nu-path Add typed path forms (#13115) 2024-06-25 18:33:57 -07:00
nu-plugin Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-plugin-core Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-plugin-engine Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-plugin-protocol Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-plugin-test-support Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-pretty-hex Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-protocol Restrict strings beginning with quote should also ending with quote (#13131) 2024-06-28 09:47:12 +08:00
nu-std Fix do signature (#13216) 2024-06-29 16:17:06 -05:00
nu-system Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-table Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-term-grid Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-test-support Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
nu-utils Converted perf function to be a macro. Utilized the perf macro within the polars plugin. (#13224) 2024-06-27 18:56:56 -05:00
nuon Bumping version to 0.95.1 (#13231) 2024-06-25 18:26:07 -07:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.