Merge pull request #1470 from bytecodealliance/pch/wiggle_error_model

Wiggle: changes to traits used for error conversion and reporting
This commit is contained in:
Pat Hickey
2020-04-06 19:46:00 -07:00
committed by GitHub
23 changed files with 111 additions and 105 deletions

View File

@@ -62,9 +62,10 @@ pub fn define_func(
_ => unreachable!("err should always be passed by value"),
};
let err_typename = names.type_ref(&tref, anon_lifetime());
let err_method = names.guest_error_conversion_method(&tref);
quote! {
let e = wiggle::GuestError::InFunc { funcname: #funcname, location: #location, err: Box::new(e.into()) };
let err: #err_typename = wiggle::GuestErrorType::from_error(e, ctx);
let err: #err_typename = GuestErrorConversion::#err_method(ctx, e); // XXX replace with conversion method on trait!
return #abi_ret::from(err);
}
} else {