Fix known externals, fix operator spans (#5140)

This commit is contained in:
JT
2022-04-09 17:17:48 +12:00
committed by GitHub
parent 683b912263
commit 14066ccc30
16 changed files with 186 additions and 127 deletions

View File

@ -305,13 +305,13 @@ fn find_with_rest(
| Value::Block { .. }
| Value::Nothing { .. }
| Value::Error { .. } => lower_value
.eq(span, term)
.eq(span, term, span)
.map_or(false, |value| value.is_true()),
Value::String { .. }
| Value::List { .. }
| Value::CellPath { .. }
| Value::CustomValue { .. } => term
.r#in(span, &lower_value)
.r#in(span, &lower_value, span)
.map_or(false, |value| value.is_true()),
Value::Record { vals, .. } => vals.iter().any(|val| {
if let Ok(span) = val.span() {
@ -320,10 +320,11 @@ fn find_with_rest(
Span::test_data(),
);
term.r#in(span, &lower_val)
term.r#in(span, &lower_val, span)
.map_or(false, |value| value.is_true())
} else {
term.r#in(span, val).map_or(false, |value| value.is_true())
term.r#in(span, val, span)
.map_or(false, |value| value.is_true())
}
}),
Value::Binary { .. } => false,

View File

@ -67,6 +67,7 @@ pub fn average(values: &[Value], head: &Span) -> Result<Value, ShellError> {
val: values.len() as i64,
span: *head,
},
*head,
),
}
}

View File

@ -98,7 +98,7 @@ pub fn sum(data: Vec<Value>, head: Span) -> Result<Value, ShellError> {
| Value::Float { .. }
| Value::Filesize { .. }
| Value::Duration { .. } => {
acc = acc.add(head, value)?;
acc = acc.add(head, value, head)?;
}
other => {
return Err(ShellError::UnsupportedInput(
@ -129,7 +129,7 @@ pub fn product(data: Vec<Value>, head: Span) -> Result<Value, ShellError> {
for value in &data {
match value {
Value::Int { .. } | Value::Float { .. } => {
acc = acc.mul(head, value)?;
acc = acc.mul(head, value, head)?;
}
other => {
return Err(ShellError::UnsupportedInput(

View File

@ -78,15 +78,15 @@ fn sum_of_squares(values: &[Value], span: &Span) -> Result<Value, ShellError> {
value.span().unwrap_or(*span),
))
}?;
let v_squared = &v.mul(*span, v)?;
sum_x2 = sum_x2.add(*span, v_squared)?;
sum_x = sum_x.add(*span, v)?;
let v_squared = &v.mul(*span, v, *span)?;
sum_x2 = sum_x2.add(*span, v_squared, *span)?;
sum_x = sum_x.add(*span, v, *span)?;
}
let sum_x_squared = sum_x.mul(*span, &sum_x)?;
let sum_x_squared_div_n = sum_x_squared.div(*span, &n)?;
let sum_x_squared = sum_x.mul(*span, &sum_x, *span)?;
let sum_x_squared_div_n = sum_x_squared.div(*span, &n, *span)?;
let ss = sum_x2.sub(*span, &sum_x_squared_div_n)?;
let ss = sum_x2.sub(*span, &sum_x_squared_div_n, *span)?;
Ok(ss)
}
@ -111,7 +111,7 @@ pub fn compute_variance(sample: bool) -> impl Fn(&[Value], &Span) -> Result<Valu
val: n as i64,
span: *span,
};
ss.div(*span, &n)
ss.div(*span, &n, *span)
}
}

View File

@ -65,7 +65,7 @@ impl Command for KeybindingsList {
.collect()
} else {
call.named_iter()
.flat_map(|(argument, _)| get_records(argument.item.as_str(), &call.head))
.flat_map(|(argument, _, _)| get_records(argument.item.as_str(), &call.head))
.collect()
};