forked from extern/nushell
Remove Span::unknown (#525)
This commit is contained in:
@ -41,11 +41,11 @@ impl Command for SubCommand {
|
||||
Value::test_int(50),
|
||||
Value::Float {
|
||||
val: 100.0,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
},
|
||||
Value::test_int(25),
|
||||
],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ impl Command for SubCommand {
|
||||
example: "[-50 100.0 25] | math avg",
|
||||
result: Some(Value::Float {
|
||||
val: 25.0,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
@ -47,7 +47,7 @@ pub fn average(values: &[Value], head: &Span) -> Result<Value, ShellError> {
|
||||
let total = &sum(
|
||||
Value::Int {
|
||||
val: 0,
|
||||
span: Span::unknown(),
|
||||
span: *head,
|
||||
},
|
||||
values.to_vec(),
|
||||
*head,
|
||||
|
@ -38,7 +38,7 @@ impl Command for SubCommand {
|
||||
example: "[1.5 2.3 -3.1] | math ceil",
|
||||
result: Some(Value::List {
|
||||
vals: vec![Value::test_int(2), Value::test_int(3), Value::test_int(-3)],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ impl Command for SubCommand {
|
||||
input: PipelineData,
|
||||
) -> Result<PipelineData, ShellError> {
|
||||
let spanned_expr: Option<Spanned<String>> = call.opt(engine_state, stack, 0)?;
|
||||
eval(spanned_expr, input, engine_state)
|
||||
eval(spanned_expr, input, engine_state, call.head)
|
||||
}
|
||||
|
||||
fn examples(&self) -> Vec<Example> {
|
||||
@ -44,7 +44,7 @@ impl Command for SubCommand {
|
||||
example: "'10 / 4' | math eval",
|
||||
result: Some(Value::Float {
|
||||
val: 2.5,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
@ -54,6 +54,7 @@ pub fn eval(
|
||||
spanned_expr: Option<Spanned<String>>,
|
||||
input: PipelineData,
|
||||
engine_state: &EngineState,
|
||||
head: Span,
|
||||
) -> Result<PipelineData, ShellError> {
|
||||
if let Some(expr) = spanned_expr {
|
||||
match parse(&expr.item, &expr.span) {
|
||||
@ -70,12 +71,12 @@ pub fn eval(
|
||||
input.map(
|
||||
move |val| {
|
||||
if let Ok(string) = val.as_string() {
|
||||
match parse(&string, &val.span().unwrap_or_else(|_| Span::unknown())) {
|
||||
match parse(&string, &val.span().unwrap_or(head)) {
|
||||
Ok(value) => value,
|
||||
Err(err) => Value::Error {
|
||||
error: ShellError::UnsupportedInput(
|
||||
format!("Math evaluation error: {}", err),
|
||||
val.span().unwrap_or_else(|_| Span::unknown()),
|
||||
val.span().unwrap_or(head),
|
||||
),
|
||||
},
|
||||
}
|
||||
@ -83,7 +84,7 @@ pub fn eval(
|
||||
Value::Error {
|
||||
error: ShellError::UnsupportedInput(
|
||||
"Expected a string from pipeline".to_string(),
|
||||
val.span().unwrap_or_else(|_| Span::unknown()),
|
||||
val.span().unwrap_or(head),
|
||||
),
|
||||
}
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ impl Command for SubCommand {
|
||||
example: "[1.5 2.3 -3.1] | math floor",
|
||||
result: Some(Value::List {
|
||||
vals: vec![Value::test_int(1), Value::test_int(2), Value::test_int(-4)],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -38,7 +38,7 @@ impl Command for SubCommand {
|
||||
example: "[3 8 9 12 12 15] | math median",
|
||||
result: Some(Value::Float {
|
||||
val: 10.5,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ impl Command for SubCommand {
|
||||
example: "[3 3 9 12 12 15] | math mode",
|
||||
result: Some(Value::List {
|
||||
vals: vec![Value::test_int(3), Value::test_int(12)],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -103,7 +103,7 @@ pub fn sum(data: Vec<Value>, head: Span) -> Result<Value, ShellError> {
|
||||
other => {
|
||||
return Err(ShellError::UnsupportedInput(
|
||||
"Attempted to compute the sum of a value that cannot be summed".to_string(),
|
||||
other.span().unwrap_or_else(|_| Span::unknown()),
|
||||
other.span().unwrap_or(head),
|
||||
));
|
||||
}
|
||||
}
|
||||
@ -121,7 +121,7 @@ pub fn product(data: Vec<Value>, head: Span) -> Result<Value, ShellError> {
|
||||
}),
|
||||
None => Err(ShellError::UnsupportedInput(
|
||||
"Empty input".to_string(),
|
||||
Span::unknown(),
|
||||
head,
|
||||
)),
|
||||
_ => Ok(Value::nothing(head)),
|
||||
}?;
|
||||
@ -135,7 +135,7 @@ pub fn product(data: Vec<Value>, head: Span) -> Result<Value, ShellError> {
|
||||
return Err(ShellError::UnsupportedInput(
|
||||
"Attempted to compute the product of a value that cannot be multiplied"
|
||||
.to_string(),
|
||||
other.span().unwrap_or_else(|_| Span::unknown()),
|
||||
other.span().unwrap_or(head),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ impl Command for SubCommand {
|
||||
example: "[1.5 2.3 -3.1] | math round",
|
||||
result: Some(Value::List {
|
||||
vals: vec![Value::test_int(2), Value::test_int(2), Value::test_int(-3)],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -60,18 +60,18 @@ impl Command for SubCommand {
|
||||
vals: vec![
|
||||
Value::Float {
|
||||
val: 1.56,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
},
|
||||
Value::Float {
|
||||
val: 2.33,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
},
|
||||
Value::Float {
|
||||
val: -3.11,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
},
|
||||
],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
]
|
||||
|
@ -38,7 +38,7 @@ impl Command for SubCommand {
|
||||
example: "[9 16] | math sqrt",
|
||||
result: Some(Value::List {
|
||||
vals: vec![Value::test_int(3), Value::test_int(4)],
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
}]
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ impl Command for SubCommand {
|
||||
example: "[1 2 3 4 5] | math stddev",
|
||||
result: Some(Value::Float {
|
||||
val: std::f64::consts::SQRT_2,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -48,7 +48,7 @@ impl Command for SubCommand {
|
||||
example: "[1 2 3 4 5] | math stddev -s",
|
||||
result: Some(Value::Float {
|
||||
val: 1.5811388300841898,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
]
|
||||
|
@ -39,7 +39,7 @@ impl Command for SubCommand {
|
||||
example: "echo [1 2 3 4 5] | math variance",
|
||||
result: Some(Value::Float {
|
||||
val: 2.0,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
Example {
|
||||
@ -47,7 +47,7 @@ impl Command for SubCommand {
|
||||
example: "[1 2 3 4 5] | math variance -s",
|
||||
result: Some(Value::Float {
|
||||
val: 2.5,
|
||||
span: Span::unknown(),
|
||||
span: Span::test_data(),
|
||||
}),
|
||||
},
|
||||
]
|
||||
@ -75,7 +75,7 @@ fn sum_of_squares(values: &[Value], span: &Span) -> Result<Value, ShellError> {
|
||||
},
|
||||
_ => Err(ShellError::UnsupportedInput(
|
||||
"Attempted to compute the sum of squared values of a value that cannot be summed or squared.".to_string(),
|
||||
value.span().unwrap_or_else(|_| Span::unknown()),
|
||||
value.span().unwrap_or(*span),
|
||||
))
|
||||
}?;
|
||||
let v_squared = &v.mul(*span, v)?;
|
||||
|
Reference in New Issue
Block a user