|  |  |  | @ -80,24 +80,18 @@ fn main() { | 
			
		
	
		
			
				
					|  |  |  |  | ``` | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | ```text | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:12:28: 12:32 error: `days` does not live long enough | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:12     inspector = Inspector(&days); | 
			
		
	
		
			
				
					|  |  |  |  |                                      ^~~~ | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:9:11: 15:2 note: reference must be valid for the block at 9:10... | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:9 fn main() { | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:10     let (inspector, days); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:11     days = Box::new(1); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:12     inspector = Inspector(&days); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:13     // Let's say `days` happens to get dropped first. | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:14     // Then when Inspector is dropped, it will try to read free'd memory! | 
			
		
	
		
			
				
					|  |  |  |  | error: `days` does not live long enough | 
			
		
	
		
			
				
					|  |  |  |  |   --> <anon>:15:1 | 
			
		
	
		
			
				
					|  |  |  |  |    | | 
			
		
	
		
			
				
					|  |  |  |  | 12 |     inspector = Inspector(&days); | 
			
		
	
		
			
				
					|  |  |  |  |    |                            ---- borrow occurs here | 
			
		
	
		
			
				
					|  |  |  |  | ... | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:10:27: 15:2 note: ...but borrowed value is only valid for the block suffix following statement 0 at 10:26 | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:10     let (inspector, days); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:11     days = Box::new(1); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:12     inspector = Inspector(&days); | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:13     // Let's say `days` happens to get dropped first. | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:14     // Then when Inspector is dropped, it will try to read free'd memory! | 
			
		
	
		
			
				
					|  |  |  |  | <anon>:15 } | 
			
		
	
		
			
				
					|  |  |  |  | 15 | } | 
			
		
	
		
			
				
					|  |  |  |  |    | ^ `days` dropped here while still borrowed | 
			
		
	
		
			
				
					|  |  |  |  |    | | 
			
		
	
		
			
				
					|  |  |  |  |    = note: values in a scope are dropped in the opposite order they are created | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | error: aborting due to previous error | 
			
		
	
		
			
				
					|  |  |  |  | ``` | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | Implementing Drop lets the Inspector execute some arbitrary code during its | 
			
		
	
	
		
			
				
					|  |  |  | 
 |