Skip to content

Commit

Permalink
Fix another ICE in point_at_expr_source_of_inferred_type
Browse files Browse the repository at this point in the history
  • Loading branch information
compiler-errors committed Mar 2, 2023
1 parent 31f858d commit 4b01a1a
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_hir_typeck/src/demand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
probe::ProbeScope::TraitsInScope,
None,
) {
Ok(pick) => pick.self_ty,
Ok(pick) => eraser.fold_ty(pick.self_ty),
Err(_) => rcvr_ty,
};
// Remove one layer of references to account for `&mut self` and
Expand Down
7 changes: 7 additions & 0 deletions tests/ui/typeck/bad-type-in-vec-contains.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// The error message here still is pretty confusing.

fn main() {
let primes = Vec::new();
primes.contains(3);
//~^ ERROR mismatched types
}
19 changes: 19 additions & 0 deletions tests/ui/typeck/bad-type-in-vec-contains.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
error[E0308]: mismatched types
--> $DIR/bad-type-in-vec-contains.rs:5:21
|
LL | primes.contains(3);
| -------- ^
| | |
| | expected `&_`, found integer
| | help: consider borrowing here: `&3`
| arguments to this method are incorrect
| here the type of `primes` is inferred to be `[_]`
|
= note: expected reference `&_`
found type `{integer}`
note: method defined here
--> $SRC_DIR/core/src/slice/mod.rs:LL:COL

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.

0 comments on commit 4b01a1a

Please sign in to comment.