Skip to content

Commit

Permalink
Rollup merge of rust-lang#71810 - estebank:issue-71798, r=davidtwco
Browse files Browse the repository at this point in the history
Do not try to find binop method on RHS `TyErr`

Fix rust-lang#71798.
  • Loading branch information
Dylan-DPC committed May 4, 2020
2 parents 35e7745 + 16a0349 commit 3f38b99
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/librustc_typeck/check/op.rs
Expand Up @@ -251,7 +251,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
}
Err(()) => {
// error types are considered "builtin"
if !lhs_ty.references_error() {
if !lhs_ty.references_error() && !rhs_ty.references_error() {
let source_map = self.tcx.sess.source_map();
match is_assign {
IsAssign::Yes => {
Expand Down
7 changes: 7 additions & 0 deletions src/test/ui/issues-71798.rs
@@ -0,0 +1,7 @@
fn test_ref(x: &u32) -> impl std::future::Future<Output = u32> + '_ {
*x //~^ ERROR the trait bound `u32: std::future::Future` is not satisfied
}

fn main() {
let _ = test_ref & u; //~ ERROR cannot find value `u` in this scope
}
20 changes: 20 additions & 0 deletions src/test/ui/issues-71798.stderr
@@ -0,0 +1,20 @@
error[E0425]: cannot find value `u` in this scope
--> $DIR/issues-71798.rs:6:24
|
LL | let _ = test_ref & u;
| ^ not found in this scope

error[E0277]: the trait bound `u32: std::future::Future` is not satisfied
--> $DIR/issues-71798.rs:1:25
|
LL | fn test_ref(x: &u32) -> impl std::future::Future<Output = u32> + '_ {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::future::Future` is not implemented for `u32`
LL | *x
| -- this returned value is of type `u32`
|
= note: the return type of a function must have a statically known size

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0277, E0425.
For more information about an error, try `rustc --explain E0277`.

0 comments on commit 3f38b99

Please sign in to comment.