Display more informative ICE

This commit is contained in:
Yuki Okushi
2020-01-08 05:30:23 +09:00
parent 7e393b5b3b
commit c524f3ca98
+9 -5
View File
@@ -2507,17 +2507,21 @@ fn new_internal(
let extra_args = if sig.abi == RustCall {
assert!(!sig.c_variadic && extra_args.is_empty());
match sig.inputs().last().unwrap().kind {
ty::Tuple(tupled_arguments) => {
if let Some(input) = sig.inputs().last() {
if let ty::Tuple(tupled_arguments) = input.kind {
inputs = &sig.inputs()[0..sig.inputs().len() - 1];
tupled_arguments.iter().map(|k| k.expect_ty()).collect()
}
_ => {
} else {
bug!(
"argument to function with \"rust-call\" ABI \
is not a tuple"
is not a tuple"
);
}
} else {
bug!(
"argument to function with \"rust-call\" ABI \
is not a tuple"
);
}
} else {
assert!(sig.c_variadic || extra_args.is_empty());