Remove Span::unknown (#525)

This commit is contained in:
JT
2021-12-19 18:46:13 +11:00
committed by GitHub
parent b54e9b6bfd
commit 2883d6cd1e
183 changed files with 1291 additions and 1124 deletions

View File

@ -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(),
}),
}]
}

View File

@ -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,

View File

@ -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(),
}),
}]
}

View File

@ -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),
),
}
}

View File

@ -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(),
}),
}]
}

View File

@ -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(),
}),
}]
}

View File

@ -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(),
}),
}]
}

View File

@ -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),
));
}
}

View File

@ -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(),
}),
},
]

View File

@ -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(),
}),
}]
}

View File

@ -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(),
}),
},
]

View File

@ -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)?;