Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							796cdc590c 
							
						 
					 
					
						
						
							
							Remove Ty: Copy bound  
						
						
						
						
					 
					
						2024-01-20 15:22:14 +01:00 
						 
				 
			
				
					
						
							
							
								Matthias Krüger 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							2587100a9b 
							
						 
					 
					
						
						
							
							Rollup merge of  #119835  - Nadrieril:simplify-empty-logic, r=compiler-errors  
						
						... 
						
						
						
						Exhaustiveness: simplify empty pattern logic
The logic that handles empty patterns had gotten quite convoluted. This PR simplifies it a lot. I tried to make the logic as easy as possible to follow; this only does logically equivalent changes.
The first commit is a drive-by comment clarification that was requested after another PR a while back.
r? `@compiler-errors` 
						
						
					 
					
						2024-01-19 19:27:00 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							448c4a4efb 
							
						 
					 
					
						
						
							
							Remove the unused overlapping_range_endpoints Vec  
						
						
						
						
					 
					
						2024-01-15 19:27:06 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							8b66f497eb 
							
						 
					 
					
						
						
							
							Lint overlapping ranges directly from exhaustiveness  
						
						
						
						
					 
					
						2024-01-15 19:27:06 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							d95644d3ae 
							
						 
					 
					
						
						
							
							Simplify empty pattern logic some more  
						
						
						
						
					 
					
						2024-01-15 16:56:18 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							de77f1a86e 
							
						 
					 
					
						
						
							
							Simplify empty pattern logic a bit  
						
						
						
						
					 
					
						2024-01-15 16:56:18 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							edb27a306a 
							
						 
					 
					
						
						
							
							Make all the empty pattern decisions in usefulness  
						
						
						
						
					 
					
						2024-01-15 16:56:18 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							bf913ad0ae 
							
						 
					 
					
						
						
							
							Simplify use of ValidityConstraint  
						
						... 
						
						
						
						We had reached a point where the shenanigans about omitting empty arms
are unnecessary. 
						
						
					 
					
						2024-01-15 16:52:51 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							db36304102 
							
						 
					 
					
						
						
							
							rustc_pattern_analysis no longer needs to be passed an arena  
						
						
						
						
					 
					
						2024-01-12 18:55:27 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							a24f4db41b 
							
						 
					 
					
						
						
							
							Only lint ranges that really overlap  
						
						
						
						
					 
					
						2024-01-11 14:04:11 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							6f6ba2571d 
							
						 
					 
					
						
						
							
							Factor out collection of overlapping ranges  
						
						
						
						
					 
					
						2024-01-11 13:59:41 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							89d01babe6 
							
						 
					 
					
						
						
							
							Track row intersections  
						
						
						
						
					 
					
						2024-01-11 13:56:09 +01:00 
						 
				 
			
				
					
						
							
							
								bors 
							
						 
					 
					
						
						
						
						
							
						
						
							65b323b168 
							
						 
					 
					
						
						
							
							Auto merge of  #119837  - matthiaskrgr:rollup-l2olpad, r=matthiaskrgr  
						
						... 
						
						
						
						Rollup of 11 pull requests
Successful merges:
 - #115046  (Use version-sorting for all sorting)
 - #118915  (Add some comments, add `can_define_opaque_ty` check to `try_normalize_ty_recur`)
 - #119006  (Fix is_global special address handling)
 - #119637  (Pass LLVM error message back to pass wrapper.)
 - #119715  (Exhaustiveness: abort on type error)
 - #119763  (Cleanup things in and around `Diagnostic`)
 - #119788  (change function name in comments)
 - #119790  (Fix all_trait* methods to return all traits available in StableMIR)
 - #119803  (Silence some follow-up errors [1/x])
 - #119804  (Stabilize mutex_unpoison feature)
 - #119832  (Meta: Add project const traits to triagebot config)
r? `@ghost`
`@rustbot` modify labels: rollup 
						
						
					 
					
						2024-01-11 02:10:34 +00:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							4b2e8bc841 
							
						 
					 
					
						
						
							
							Abort analysis on type error  
						
						
						
						
					 
					
						2024-01-07 22:13:08 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							07d5f19426 
							
						 
					 
					
						
						
							
							Add an error path to the algorithm  
						
						
						
						
					 
					
						2024-01-07 22:13:08 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							1a3edc169b 
							
						 
					 
					
						
						
							
							We only need the arity of the subtype list now  
						
						
						
						
					 
					
						2024-01-07 19:20:19 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							4ae2840e84 
							
						 
					 
					
						
						
							
							Use special enum to represent algorithm-generated wildcards in the matrix  
						
						
						
						
					 
					
						2024-01-07 19:20:19 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							50b197c6ee 
							
						 
					 
					
						
						
							
							Reuse ctor_sub_tys when we have one around  
						
						
						
						
					 
					
						2024-01-06 18:03:13 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							d40f1b1172 
							
						 
					 
					
						
						
							
							Remove Matrix.wildcard_row  
						
						... 
						
						
						
						It was only used to track types and relevancy, so may as well store that
directly. 
						
						
					 
					
						2024-01-06 17:56:54 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							c35272058d 
							
						 
					 
					
						
						
							
							Statically enforce revealing of opaques  
						
						
						
						
					 
					
						2024-01-01 23:10:03 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Goulet 
							
						 
					 
					
						
						
						
						
							
						
						
							4ae024c754 
							
						 
					 
					
						
						
							
							Elide more lifetimes  
						
						
						
						
					 
					
						2023-12-26 02:12:33 +00:00 
						 
				 
			
				
					
						
							
							
								Michael Goulet 
							
						 
					 
					
						
						
						
						
							
						
						
							b91a98ba10 
							
						 
					 
					
						
						
							
							Even more  
						
						
						
						
					 
					
						2023-12-26 02:02:01 +00:00 
						 
				 
			
				
					
						
							
							
								Michael Goulet 
							
						 
					 
					
						
						
						
						
							
						
						
							eebb2abe0b 
							
						 
					 
					
						
						
							
							Yeet some lifetimes  
						
						
						
						
					 
					
						2023-12-26 01:59:18 +00:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							efb04e6572 
							
						 
					 
					
						
						
							
							Rework the explanation of relevancy  
						
						
						
						
					 
					
						2023-12-23 22:43:06 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							71e83347bb 
							
						 
					 
					
						
						
							
							Improve performance on wide matches  
						
						
						
						
					 
					
						2023-12-23 13:11:38 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							5fccaee59c 
							
						 
					 
					
						
						
							
							Clarify the situation with dummy patterns and PatData  
						
						... 
						
						
						
						Use an explicit `Option` instead of requiring a `Default` bound 
						
						
					 
					
						2023-12-23 00:08:38 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							c6aa16c469 
							
						 
					 
					
						
						
							
							Use derivative for better derive bounds  
						
						
						
						
					 
					
						2023-12-23 00:04:20 +01:00 
						 
				 
			
				
					
						
							
							
								Nadrieril 
							
						 
					 
					
						
						
						
						
							
						
						
							2a87bae48d 
							
						 
					 
					
						
						
							
							Reveal opaque types in exhaustiveness checking  
						
						
						
						
					 
					
						2023-12-20 14:43:00 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
							
							
								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 
							
						 
					 
					
						
						
						
						
							
						
						
							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