| fn main() { |
| let _ = String.new(); |
| //~^ ERROR expected value, found struct `String` |
| //~| HELP use the path separator |
| |
| let _ = String.default; |
| //~^ ERROR expected value, found struct `String` |
| //~| HELP use the path separator |
| |
| let _ = Vec::<()>.with_capacity(1); |
| //~^ ERROR expected value, found struct `Vec` |
| //~| HELP use the path separator |
| } |
| |
| macro_rules! Type { |
| () => { |
| ::std::cell::Cell |
| //~^ ERROR expected value, found struct `std::cell::Cell` |
| //~| ERROR expected value, found struct `std::cell::Cell` |
| //~| ERROR expected value, found struct `std::cell::Cell` |
| }; |
| } |
| |
| macro_rules! create { |
| (type method) => { |
| Vec.new() |
| //~^ ERROR expected value, found struct `Vec` |
| //~| HELP use the path separator |
| }; |
| (type field) => { |
| Vec.new |
| //~^ ERROR expected value, found struct `Vec` |
| //~| HELP use the path separator |
| }; |
| (macro method) => { |
| Type!().new(0) |
| //~^ HELP use the path separator |
| }; |
| } |
| |
| fn interaction_with_macros() { |
| // |
| // Verify that we do not only suggest to replace `.` with `::` if the receiver is a |
| // macro call but that we also correctly suggest to surround it with angle brackets. |
| // |
| |
| Type!().get(); |
| //~^ HELP use the path separator |
| |
| Type! {}.get; |
| //~^ HELP use the path separator |
| |
| // |
| // Ensure that the suggestion is shown for expressions inside of macro definitions. |
| // |
| |
| let _ = create!(type method); |
| let _ = create!(type field); |
| let _ = create!(macro method); |
| } |