mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +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);
 | |
| }
 | 
