Ensure type is copyable before emitting note suggesting adding manual deref.
drive-by: fix merge conflict; fix test expected error output post rebase.
This commit is contained in:
parent
0d395841fc
commit
b8669dff55
3 changed files with 5 additions and 5 deletions
|
|
@ -206,8 +206,9 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
|
|||
lhs_ty);
|
||||
|
||||
if let TypeVariants::TyRef(_, ref ty_mut) = lhs_ty.sty {
|
||||
if self.lookup_op_method(expr, ty_mut.ty, vec![rhs_ty_var],
|
||||
token::intern(name), trait_def_id,
|
||||
if !self.infcx.type_moves_by_default(ty_mut.ty, lhs_expr.span) &&
|
||||
self.lookup_op_method(expr, ty_mut.ty, vec![rhs_ty_var],
|
||||
Symbol::intern(name), trait_def_id,
|
||||
lhs_expr).is_ok() {
|
||||
err.span_note(
|
||||
lhs_expr.span,
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ fn main() {
|
|||
let v = vec![1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
let vr = v.iter().filter(|x| {
|
||||
x % 2 == 0
|
||||
//~^ ERROR binary operation `%` cannot be applied to type `&&_`
|
||||
//~^ ERROR binary operation `%` cannot be applied to type `&&{integer}`
|
||||
//~| NOTE this is a reference of type that `%` can be applied to
|
||||
//~| NOTE an implementation of `std::ops::Rem` might be missing for `&&_`
|
||||
//~| NOTE an implementation of `std::ops::Rem` might be missing for `&&{integer}`
|
||||
});
|
||||
println!("{:?}", vr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ fn main() {
|
|||
let b: &str = &"2";
|
||||
let c = a + b;
|
||||
//~^ ERROR binary operation `+` cannot be applied to type `&std::string::String`
|
||||
//~| NOTE this is a reference of type that `+` can be applied to
|
||||
//~| NOTE an implementation of `std::ops::Add` might be missing for `&std::string::String`
|
||||
println!("{:?}", c);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue