error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:8:9 | LL | foo(s); | ^ | | | expected struct `std::string::String`, found reference | help: try using a conversion method: `s.to_string()` | = note: expected type `std::string::String` found type `&std::string::String` error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:14:10 | LL | foo3(u); | ^ | | | expected u32, found &u32 | help: consider dereferencing the borrow: `*u` | = note: expected type `u32` found type `&u32` error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:22:9 | LL | foo(&"aaa".to_owned()); | ^^^^^^^^^^^^^^^^^ | | | expected struct `std::string::String`, found reference | help: consider removing the borrow: `"aaa".to_owned()` | = note: expected type `std::string::String` found type `&std::string::String` error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:24:9 | LL | foo(&mut "aaa".to_owned()); | ^^^^^^^^^^^^^^^^^^^^^ | | | expected struct `std::string::String`, found mutable reference | help: consider removing the borrow: `"aaa".to_owned()` | = note: expected type `std::string::String` found type `&mut std::string::String` error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:2:20 | LL | ($x:expr) => { &$x } //~ ERROR mismatched types | ^^^ expected u32, found &{integer} ... LL | foo3(borrow!(0)); | ---------- in this macro invocation | = note: expected type `u32` found type `&{integer}` error[E0308]: mismatched types --> $DIR/deref-suggestion.rs:28:5 | LL | assert_eq!(3i32, &3i32); | ^^^^^^^^^^^^^^^^^^^^^^^^ expected i32, found &i32 | = note: expected type `i32` found type `&i32` = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to 6 previous errors For more information about this error, try `rustc --explain E0308`.