Skip to content

Commit

Permalink
Suggest using as_ref on *const T
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Jun 2, 2019
1 parent 7840a0b commit eb73b73
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 0 deletions.
5 changes: 5 additions & 0 deletions src/librustc_typeck/check/method/suggest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,11 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
);
}
}
if let ty::RawPtr(_) = &actual.sty {
err.note("try using `<*const T>::as_ref()` to get a reference to the \
type behind the pointer: https://doc.rust-lang.org/std/\
primitive.pointer.html#method.as_ref");
}
err
}
} else {
Expand Down
5 changes: 5 additions & 0 deletions src/test/ui/issues/issue-21596.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
fn main() {
let x = 8u8;
let z: *const u8 = &x;
println!("{}", z.to_string()); //~ ERROR E0599
}
13 changes: 13 additions & 0 deletions src/test/ui/issues/issue-21596.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
error[E0599]: no method named `to_string` found for type `*const u8` in the current scope
--> $DIR/issue-21596.rs:4:22
|
LL | println!("{}", z.to_string());
| ^^^^^^^^^
|
= note: try using `<*const T>::as_ref()` to get a reference to the type behind the pointer: https://doc.rust-lang.org/std/primitive.pointer.html#method.as_ref
= note: the method `to_string` exists but the following trait bounds were not satisfied:
`*const u8 : std::string::ToString`

error: aborting due to previous error

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

0 comments on commit eb73b73

Please sign in to comment.