diff --git a/src/librustc_typeck/check/regionck.rs b/src/librustc_typeck/check/regionck.rs index 2ec7e2c38836d049545dcdf2bdc25106974a0587..bfa3c384da7b2468f1065838c03021aacbabf3a5 100644 --- a/src/librustc_typeck/check/regionck.rs +++ b/src/librustc_typeck/check/regionck.rs @@ -682,10 +682,12 @@ fn visit_expr(rcx: &mut Rcx, expr: &ast::Expr) { visit::walk_expr(rcx, expr); } - ast::ExprUnary(_, ref lhs) if has_method_map => { + ast::ExprUnary(op, ref lhs) if has_method_map => { + let implicitly_ref_args = !ast_util::is_by_value_unop(op); + // As above. constrain_call(rcx, expr, Some(&**lhs), - None::.iter(), true); + None::.iter(), implicitly_ref_args); visit::walk_expr(rcx, expr); }