TupleMatchFound::Single => {
let expected_ty = expected_input_tys[0];
let provided_ty = final_arg_types[0].map(|ty| ty.0).unwrap();
+ let expected_ty = self.resolve_vars_if_possible(expected_ty);
+ let provided_ty = self.resolve_vars_if_possible(provided_ty);
let cause = &self.misc(provided_args[0].span);
let compatibility = demand_compatible(0, &mut final_arg_types);
let type_error = match compatibility {
{
let expected_ty = expected_input_tys[*input_idx];
let provided_ty = final_arg_types[*input_idx].map(|ty| ty.0).unwrap();
+ let expected_ty = self.resolve_vars_if_possible(expected_ty);
+ let provided_ty = self.resolve_vars_if_possible(provided_ty);
let cause = &self.misc(provided_args[*input_idx].span);
let trace = TypeTrace::types(cause, true, expected_ty, provided_ty);
let mut err = self.report_and_explain_type_error(trace, error);
.and_then(|x| x.as_ref())
.map(|ty| ty.0)
.unwrap_or(tcx.ty_error());
+ let expected_ty = self.resolve_vars_if_possible(expected_ty);
+ let provided_ty = self.resolve_vars_if_possible(provided_ty);
if let Compatibility::Incompatible(error) = &compatibility {
let cause = &self.misc(
provided_args.get(input_idx).map(|i| i.span).unwrap_or(call_span),
|
LL | fn foo(_s: i16) { }
| ^^^ -------
+help: you can convert an `isize` to an `i16` and panic if the converted value doesn't fit
+ |
+LL | foo((1*(1 as isize)).try_into().unwrap());
+ | + +++++++++++++++++++++
error[E0308]: mismatched types
--> $DIR/issue-13359.rs:10:9
|
LL | fn bar(_s: u32) { }
| ^^^ -------
+help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
+ |
+LL | bar((1*(1 as usize)).try_into().unwrap());
+ | + +++++++++++++++++++++
error: aborting due to 2 previous errors
LL | fn write(fildes: i32, buf: *const i8, nbyte: u64) -> i64;
| ^^^^^
= note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: you can convert a `usize` to a `u64` and panic if the converted value doesn't fit
+ |
+LL | ($arr.len() * size_of($arr[0])).try_into().unwrap());
+ | + +++++++++++++++++++++
error[E0605]: non-primitive cast: `{integer}` as `()`
--> $DIR/issue-26480.rs:22:19