mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 13:04:42 +00:00 
			
		
		
		
	 1b90f5efaf
			
		
	
	
		1b90f5efaf
		
	
	
	
	
		
			
			The tokenizer gives us whole float literal tokens, we have to split them up in order to be able to create field access from them.
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // run-pass
 | |
| // Test for issue #112204 -- make sure this goes through the entire compilation pipeline,
 | |
| // similar to why `offset-of-unsized.rs` is also build-pass
 | |
| 
 | |
| #![feature(offset_of)]
 | |
| #![feature(builtin_syntax)]
 | |
| 
 | |
| use std::mem::offset_of;
 | |
| 
 | |
| type ComplexTup = ((u8, (u8, (u8, u16), u8)), (u8, u32, u16));
 | |
| 
 | |
| fn main() {
 | |
|     println!("{}", offset_of!(((u8, u8), u8), 0));
 | |
|     println!("{}", offset_of!(((u8, u8), u8), 1));
 | |
|     println!("{}", offset_of!(((u8, (u8, u8)), (u8, u8, u8)), 0.1.0));
 | |
| 
 | |
|     // Complex case: do all combinations of spacings because the spacing determines what gets
 | |
|     // sent to the lexer.
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1.1.1));
 | |
|     println!("{}", builtin # offset_of(ComplexTup, 0. 1.1.1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0 . 1.1.1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0 .1.1.1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1 .1.1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1 . 1.1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1. 1.1));
 | |
|     println!("{}", builtin # offset_of(ComplexTup, 0.1.1. 1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1.1 . 1));
 | |
|     println!("{}", offset_of!(ComplexTup, 0.1.1 .1));
 | |
| 
 | |
|     println!("{}", offset_of!(((u8, u16), (u32, u16, u8)), 0.0));
 | |
|     println!("{}", offset_of!(((u8, u16), (u32, u16, u8)), 1.2));
 | |
| }
 |