234484b6f8
normalize special characters in module names to allow variable access ( #14353 )
...
Fixes #14252
# User-Facing Changes
- Special characters in module names are replaced with underscores when
importing constants, preventing "expected valid variable name":
```nushell
> module foo-bar { export const baz = 1 }
> use foo-bar
> $foo_bar.baz
```
- "expected valid variable name" errors now include a suggestion list:
```nushell
> module foo-bar { export const baz = 1 }
> use foo-bar
> $foo-bar
Error: nu::parser::parse_mismatch_with_did_you_mean
× Parse mismatch during operation.
╭─[entry #1:1:1]
1 │ $foo-bar;
· ────┬───
· ╰── expected valid variable name. Did you mean '$foo_bar'?
╰────
```
2024-12-05 21:35:15 +08:00
4968b6b9d0
fix error when exporting consts with type signatures in modules ( #14118 )
...
Fixes #14023
# Description
- Prevents "failed to find added variable" when modules export constants
with type signatures:
```nushell
> module foo { export const bar: int = 2 }
Error: nu::parser::unknown_state
× Internal error.
╭─[entry #1:1:21]
1 │ module foo { export const bar: int = 2 }
· ─────────┬────────
· ╰── failed to find added variable
```
- Returns `name_is_builtin_var` errors for names with type signatures:
```nushell
> let env: string = "";
Error: nu::parser::name_is_builtin_var
× `env` used as variable name.
╭─[entry #1:1:5]
1 │ let env: string = "";
· ─┬─
· ╰── already a builtin variable
```
2024-10-22 11:54:31 +02:00
d7014e671d
use
command: Don't create a variable with empty record if it doesn't define any constants (#14051 )
...
# Description
Fixes : #13967
The key changes lays in `nu-protocol/src/module.rs`, when resolving
import pattern, nushell only needs to bring `$module` with a record
value if it defines any constants.
# User-Facing Changes
```nushell
module spam {}
use spam
```
Will no longer create a `$spam` variable with an empty record.
# Tests + Formatting
Adjusted some tests and added some tests.
2024-10-20 23:12:57 +02:00
28b6db115a
Revert PRs for 0.99.1 patch ( #14119 )
...
# Description
Temporarily reverts PRs merged after the 0.99.1 bump.
2024-10-18 02:51:14 +00:00
71b49c3374
use
command: Don't create a variable with empty record if it doesn't define any constants (#14051 )
...
# Description
Fixes : #13967
The key changes lays in `nu-protocol/src/module.rs`, when resolving
import pattern, nushell only needs to bring `$module` with a record
value if it defines any constants.
# User-Facing Changes
```nushell
module spam {}
use spam
```
Will no longer create a `$spam` variable with an empty record.
# Tests + Formatting
Adjusted some tests and added some tests.
2024-10-16 21:25:45 -05:00
c4dca5fe03
Merged tests to produce a single binary ( #12826 )
...
This PR should close #7147
# Description
Merged src/tests into /tests to produce a single binary.

# User-Facing Changes
No user facing changes
# Tests + Formatting
Moved tests. Tollkit check pr pass.
# After Submitting
---------
Co-authored-by: Ian Manske <ian.manske@pm.me >
2024-05-13 13:37:53 +00:00