mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			672 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			672 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![deny(dead_code)]
 | |
| 
 | |
| use std::mem::offset_of;
 | |
| 
 | |
| struct Alpha {
 | |
|     a: (),
 | |
|     b: (), //~ ERROR field `b` is never read
 | |
|     c: Beta,
 | |
| }
 | |
| 
 | |
| struct Beta {
 | |
|     a: (), //~ ERROR field `a` is never read
 | |
|     b: (),
 | |
| }
 | |
| 
 | |
| struct Gamma {
 | |
|     a: (), //~ ERROR field `a` is never read
 | |
|     b: (),
 | |
| }
 | |
| 
 | |
| struct Delta {
 | |
|     a: (),
 | |
|     b: (), //~ ERROR field `b` is never read
 | |
| }
 | |
| 
 | |
| trait Trait {
 | |
|     type Assoc;
 | |
| }
 | |
| impl Trait for () {
 | |
|     type Assoc = Delta;
 | |
| }
 | |
| 
 | |
| struct Project<T: Trait> {
 | |
|     a: u8, //~ ERROR field `a` is never read
 | |
|     b: <T as Trait>::Assoc,
 | |
| }
 | |
| 
 | |
| fn main() {
 | |
|     offset_of!(Alpha, a);
 | |
|     offset_of!(Alpha, c.b);
 | |
|     offset_of!((Gamma,), 0.b);
 | |
|     offset_of!(Project::<()>, b.a);
 | |
| }
 | 
