mirror of
https://github.com/nushell/nushell.git
synced 2025-08-09 02:55:07 +02:00
Replace raw usize IDs with new types (#13832)
# Description In this PR I replaced most of the raw usize IDs with [newtypes](https://doc.rust-lang.org/rust-by-example/generics/new_types.html). Some other IDs already started using new types and in this PR I did not want to touch them. To make the implementation less repetitive, I made use of a generic `Id<T>` with marker structs. If this lands I would try to move make other IDs also in this pattern. Also at some places I needed to use `cast`, I'm not sure if the type was incorrect and therefore casting not needed or if actually different ID types intermingle sometimes. # User-Facing Changes Probably few, if you got a `DeclId` via a function and placed it later again it will still work.
This commit is contained in:
@ -9,8 +9,8 @@ use nu_plugin_protocol::{
|
||||
PluginCustomValue, PluginInput, PluginOutput, Protocol, ProtocolInfo, StreamData,
|
||||
};
|
||||
use nu_protocol::{
|
||||
engine::Closure, ByteStreamType, Config, CustomValue, IntoInterruptiblePipelineData,
|
||||
LabeledError, PipelineData, PluginSignature, ShellError, Signals, Span, Spanned, Value,
|
||||
engine::Closure, BlockId, ByteStreamType, Config, CustomValue, IntoInterruptiblePipelineData,
|
||||
LabeledError, PipelineData, PluginSignature, ShellError, Signals, Span, Spanned, Value, VarId,
|
||||
};
|
||||
use std::{
|
||||
collections::HashMap,
|
||||
@ -1040,8 +1040,8 @@ fn interface_eval_closure_with_stream() -> Result<(), ShellError> {
|
||||
.eval_closure_with_stream(
|
||||
&Spanned {
|
||||
item: Closure {
|
||||
block_id: 42,
|
||||
captures: vec![(0, Value::test_int(5))],
|
||||
block_id: BlockId::new(42),
|
||||
captures: vec![(VarId::new(0), Value::test_int(5))],
|
||||
},
|
||||
span: Span::test_data(),
|
||||
},
|
||||
@ -1064,10 +1064,14 @@ fn interface_eval_closure_with_stream() -> Result<(), ShellError> {
|
||||
redirect_stdout,
|
||||
redirect_stderr,
|
||||
} => {
|
||||
assert_eq!(42, closure.item.block_id, "closure.item.block_id");
|
||||
assert_eq!(
|
||||
BlockId::new(42),
|
||||
closure.item.block_id,
|
||||
"closure.item.block_id"
|
||||
);
|
||||
assert_eq!(1, closure.item.captures.len(), "closure.item.captures.len");
|
||||
assert_eq!(
|
||||
(0, Value::test_int(5)),
|
||||
(VarId::new(0), Value::test_int(5)),
|
||||
closure.item.captures[0],
|
||||
"closure.item.captures[0]"
|
||||
);
|
||||
|
Reference in New Issue
Block a user