mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
61 lines
1.6 KiB
Rust
61 lines
1.6 KiB
Rust
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);
|
|
}
|