diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-06-04 04:48:19 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-06-04 04:48:19 +0200 |
| commit | 28ce2b1fdb53562ab3ed4e3b1f6b62a57c68f3e9 (patch) | |
| tree | fcdc0040ae0f4ccccc7a99c84346b1140c731bcf | |
| parent | 1ae4727f3f41dd8e1c18e4e3a43ba2f1a23145a6 (diff) | |
| parent | eb73b73b8d50b29658d87670670d939746b2d00c (diff) | |
| download | rust-28ce2b1fdb53562ab3ed4e3b1f6b62a57c68f3e9.tar.gz rust-28ce2b1fdb53562ab3ed4e3b1f6b62a57c68f3e9.zip | |
Rollup merge of #61444 - estebank:const-pt-as-ref, r=matthewjasper
Suggest using `as_ref` on `*const T` Fix #21596.
| -rw-r--r-- | src/librustc_typeck/check/method/suggest.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-21596.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-21596.stderr | 13 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs index 9ef6112a945..f05e0d31582 100644 --- a/src/librustc_typeck/check/method/suggest.rs +++ b/src/librustc_typeck/check/method/suggest.rs @@ -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 { diff --git a/src/test/ui/issues/issue-21596.rs b/src/test/ui/issues/issue-21596.rs new file mode 100644 index 00000000000..79f6c91d9ac --- /dev/null +++ b/src/test/ui/issues/issue-21596.rs @@ -0,0 +1,5 @@ +fn main() { + let x = 8u8; + let z: *const u8 = &x; + println!("{}", z.to_string()); //~ ERROR E0599 +} diff --git a/src/test/ui/issues/issue-21596.stderr b/src/test/ui/issues/issue-21596.stderr new file mode 100644 index 00000000000..07d29f30e98 --- /dev/null +++ b/src/test/ui/issues/issue-21596.stderr @@ -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`. |
