Fix error propagration across hash commands (#493)

This commit is contained in:
Benoît Cortier 2021-12-14 14:49:48 -05:00 committed by GitHub
parent a5c1dd0da5
commit a41ae72bc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,7 +1,7 @@
use nu_engine::CallExt;
use nu_protocol::ast::{Call, CellPath};
use nu_protocol::engine::{Command, EngineState, Stack};
use nu_protocol::{Example, PipelineData, ShellError, Signature, Span, SyntaxShape, Value};
use nu_protocol::{Example, PipelineData, ShellError, Signature, SyntaxShape, Value};
use std::marker::PhantomData;
pub trait HashDigest: digest::Digest + Clone {
@ -90,6 +90,11 @@ where
Value::String { val, span } => (val.as_bytes(), *span),
Value::Binary { val, span } => (val.as_slice(), *span),
other => {
let span = match input.span() {
Ok(span) => span,
Err(error) => return Value::Error { error },
};
return Value::Error {
error: ShellError::UnsupportedInput(
format!(
@ -97,7 +102,7 @@ where
other.get_type(),
D::name()
),
input.span().unwrap_or_else(|_| Span::unknown()),
span,
),
};
}