bors 
							
						 
					 
					
						
						
						
						
							
						
						
							3a539c0889 
							
						 
					 
					
						
						
							
							Auto merge of  #118842  - Nadrieril:librarify-further, r=compiler-errors  
						
						 
						
						... 
						
						
						
						Make exhaustiveness usable outside of rustc
With this PR, `rustc_pattern_analysis` compiles on stable (with the `stable` feature)! `rust-analyzer` will be able to use it to provide match-related diagnostics and refactors.
Two questions:
- Should I name the feature `nightly` instead of `rustc` for consistency with other crates? `rustc` makes more sense imo.
- `typed-arena` is an optional dependency but tidy made me add it to the allow-list anyway. Can I avoid that somehow?
r? `@compiler-errors` 
						
						
					 
					
						2023-12-19 17:15:04 +00:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matthias Krüger 
							
						 
					 
					
						
						
						
						
							
						
						
							74d81d15b4 
							
						 
					 
					
						
						
							
							NFC: do not clone types that are copy  
						
						 
						
						
						
						
					 
					
						2023-12-15 23:19:51 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							3016c29628 
							
						 
					 
					
						
						
							
							s/MatchCx/TypeCx/  
						
						 
						
						
						
						
					 
					
						2023-12-15 17:26:19 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							4bcf66f875 
							
						 
					 
					
						
						
							
							Introduce MatchCtxt  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							60ea14bfaa 
							
						 
					 
					
						
						
							
							s/PatCtxt/PlaceCtxt/  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							1e89a38423 
							
						 
					 
					
						
						
							
							pattern_analysis doesn't need to know what spans are 
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							8c5e89907c 
							
						 
					 
					
						
						
							
							Address review comments  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							e10b165775 
							
						 
					 
					
						
						
							
							s/RustcCtxt/RustcMatchCheckCtxt/  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							63c5b008e1 
							
						 
					 
					
						
						
							
							Make the crate compile on stable  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							e646c9f723 
							
						 
					 
					
						
						
							
							Make the rustc_data_structures dependency optional  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:38 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							16bd6ac3ed 
							
						 
					 
					
						
						
							
							Gate rustc-specific code under a feature  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:37 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							42f4393824 
							
						 
					 
					
						
						
							
							Iron out last rustc-specific details  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:37 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							cb622f3994 
							
						 
					 
					
						
						
							
							Name rustc-specific things "rustc"  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:37 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							3d7c4df326 
							
						 
					 
					
						
						
							
							Abstract MatchCheckCtxt into a trait  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:58:36 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							3ad76f9325 
							
						 
					 
					
						
						
							
							Disentangle the arena from MatchCheckCtxt  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:57:36 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							081c3dcf43 
							
						 
					 
					
						
						
							
							Remove all matching on ty.kind() outside cx  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:57:36 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							b111b2e839 
							
						 
					 
					
						
						
							
							Split Single ctor into more specific variants  
						
						 
						
						
						
						
					 
					
						2023-12-15 16:57:36 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matthias Krüger 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2a1acc26a0 
							
						 
					 
					
						
						
							
							Update compiler/rustc_pattern_analysis/src/constructor.rs  
						
						 
						
						... 
						
						
						
						add note that `missing_empty` is cleared now
Co-authored-by: Nadrieril <Nadrieril@users.noreply.github.com> 
						
						
					 
					
						2023-12-12 21:12:19 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Matthias Krüger 
							
						 
					 
					
						
						
						
						
							
						
						
							6892fcd690 
							
						 
					 
					
						
						
							
							simplify merging of two vecs  
						
						 
						
						
						
						
					 
					
						2023-12-12 18:42:37 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							43714edb6f 
							
						 
					 
					
						
						
							
							Fix doc links  
						
						 
						
						
						
						
					 
					
						2023-12-11 12:53:01 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							5d6c539c2d 
							
						 
					 
					
						
						
							
							Fix item visibilities  
						
						 
						
						
						
						
					 
					
						2023-12-11 11:20:55 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							de3f983bcd 
							
						 
					 
					
						
						
							
							Make MaybeInfiniteInt rustc-independent  
						
						 
						
						
						
						
					 
					
						2023-12-11 11:20:55 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							24adca0a26 
							
						 
					 
					
						
						
							
							Move lints to their own module  
						
						 
						
						
						
						
					 
					
						2023-12-11 11:20:55 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							3691a0aee5 
							
						 
					 
					
						
						
							
							Gather rustc-specific functions around MatchCheckCtxt  
						
						 
						
						
						
						
					 
					
						2023-12-11 11:20:55 +01:00  
					
					
						 
						
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							281002d42c 
							
						 
					 
					
						
						
							
							Extract exhaustiveness into its own crate  
						
						 
						
						
						
						
					 
					
						2023-12-11 11:20:55 +01:00