Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7064c38e53 
								
							 
						 
						
							
							
								
								[ty] Filter out revealed-type and undefined-reveal diagnostics from mdtest snapshots ( #20820 )  
							
							
	
		
			
	 
	
	
		
	
	
		
			
				
	CI / Determine changes (push) Waiting to run 
				
			 
		
			
				
	CI / cargo fmt (push) Waiting to run 
				
			 
		
			
				
	CI / cargo clippy (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (linux, release) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (windows) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (wasm) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo build (release) (push) Waiting to run 
				
			 
		
			
				
	CI / cargo build (msrv) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo fuzz build (push) Blocked by required conditions 
				
			 
		
			
				
	CI / fuzz parser (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test scripts (push) Blocked by required conditions 
				
			 
		
			
				
	CI / ecosystem (push) Blocked by required conditions 
				
			 
		
			
				
	CI / Fuzz for new ty panics (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo shear (push) Blocked by required conditions 
				
			 
		
			
				
	CI / ty completion evaluation (push) Blocked by required conditions 
				
			 
		
			
				
	CI / python package (push) Waiting to run 
				
			 
		
			
				
	CI / pre-commit (push) Waiting to run 
				
			 
		
			
				
	CI / mkdocs (push) Waiting to run 
				
			 
		
			
				
	CI / cargo test (linux) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks walltime (medium|multithreaded) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks walltime (small|large) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / formatter instabilities and black similarity (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test ruff-lsp (push) Blocked by required conditions 
				
			 
		
			
				
	CI / check playground (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks instrumented (ruff) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks instrumented (ty) (push) Blocked by required conditions 
				
			 
		
			
				
	[ty Playground] Release / publish (push) Waiting to run 
				
			 
		
		
	 
 
	 
							
						 
						
							2025-10-12 18:39:32 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4de7d653bd 
								
							 
						 
						
							
							
								
								[ty] Treat Hashable, and similar protocols, equivalently to object for subtyping/assignability ( #20284 )  
							
							
							
						 
						
							2025-09-10 11:38:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Douglas Creager 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								06cd249a9b 
								
							 
						 
						
							
							
								
								[ty] Track different uses of legacy typevars, including context when rendering typevars ( #19604 )  
							
							... 
							
							
	
		
			
	 
	
	
		
	
	
		
			
				
	CI / mkdocs (push) Waiting to run 
				
			 
		
			
				
	CI / Determine changes (push) Waiting to run 
				
			 
		
			
				
	CI / cargo fmt (push) Waiting to run 
				
			 
		
			
				
	CI / cargo clippy (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (linux) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (linux, release) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (windows) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (wasm) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo build (release) (push) Waiting to run 
				
			 
		
			
				
	CI / formatter instabilities and black similarity (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo build (msrv) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo fuzz build (push) Blocked by required conditions 
				
			 
		
			
				
	CI / fuzz parser (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test scripts (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test ruff-lsp (push) Blocked by required conditions 
				
			 
		
			
				
	CI / ecosystem (push) Blocked by required conditions 
				
			 
		
			
				
	CI / Fuzz for new ty panics (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo shear (push) Blocked by required conditions 
				
			 
		
			
				
	CI / python package (push) Waiting to run 
				
			 
		
			
				
	CI / pre-commit (push) Waiting to run 
				
			 
		
			
				
	CI / check playground (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks-instrumented (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks-walltime (push) Blocked by required conditions 
				
			 
		
			
				
	[ty Playground] Release / publish (push) Waiting to run 
				
			 
		
		
	 
 
	 
							
							This PR introduces a few related changes:
- We now keep track of each time a legacy typevar is bound in a
different generic context (e.g. class, function), and internally create
a new `TypeVarInstance` for each usage. This means the rest of the code
can now assume that salsa-equivalent `TypeVarInstance`s refer to the
same typevar, even taking into account that legacy typevars can be used
more than once.
- We also go ahead and track the binding context of PEP 695 typevars.
That's _much_ easier to track since we have the binding context right
there during type inference.
- With that in place, we can now include the name of the binding context
when rendering typevars (e.g. `T@f` instead of `T`) 
							
						 
						
							2025-08-01 12:20:32 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								0a11baf29c 
								
							 
						 
						
							
							
								
								[ty] Implement implicit inheritance from Generic[] for PEP-695 generic classes ( #18283 )  
							
							
							
						 
						
							2025-05-26 20:40:16 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								d02c9ada5d 
								
							 
						 
						
							
							
								
								[ty] Do not carry the generic context of Protocol or Generic in the ClassBase enum ( #17989 )  
							
							... 
							
							
	
		
			
	 
	
	
		
	
	
		
			
				
	CI / Determine changes (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo fmt (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo build (release) (push) Has been cancelled 
				
			 
		
			
				
	CI / mkdocs (push) Has been cancelled 
				
			 
		
			
				
	CI / python package (push) Has been cancelled 
				
			 
		
			
				
	CI / pre-commit (push) Has been cancelled 
				
			 
		
			
				
	[ty Playground] Release / publish (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo clippy (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo test (linux) (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo test (linux, release) (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo test (windows) (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo test (wasm) (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo build (msrv) (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo fuzz build (push) Has been cancelled 
				
			 
		
			
				
	CI / fuzz parser (push) Has been cancelled 
				
			 
		
			
				
	CI / test scripts (push) Has been cancelled 
				
			 
		
			
				
	CI / ecosystem (push) Has been cancelled 
				
			 
		
			
				
	CI / Fuzz for new ty panics (push) Has been cancelled 
				
			 
		
			
				
	CI / cargo shear (push) Has been cancelled 
				
			 
		
			
				
	CI / formatter instabilities and black similarity (push) Has been cancelled 
				
			 
		
			
				
	CI / test ruff-lsp (push) Has been cancelled 
				
			 
		
			
				
	CI / check playground (push) Has been cancelled 
				
			 
		
			
				
	CI / benchmarks (push) Has been cancelled 
				
			 
		
		
	 
 
	 
							
							## Summary
It doesn't seem to be necessary for our generics implementation to carry
the `GenericContext` in the `ClassBase` variants. Removing it simplifies
the code, fixes many TODOs about `Generic` or `Protocol` appearing
multiple times in MROs when each should only appear at most once, and
allows us to more accurately detect runtime errors that occur due to
`Generic` or `Protocol` appearing multiple times in a class's bases.
In order to remove the `GenericContext` from the `ClassBase` variant, it
turns out to be necessary to emulate
`typing._GenericAlias.__mro_entries__`, or we end up with a large number
of false-positive `inconsistent-mro` errors. This PR therefore also does
that.
Lastly, this PR fixes the inferred MROs of PEP-695 generic classes,
which implicitly inherit from `Generic` even if they have no explicit
bases.
## Test Plan
mdtests 
							
						 
						
							2025-05-22 21:37:03 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								cb04343b3b 
								
							 
						 
						
							
							
								
								[ty] Split invalid-base error code into two error codes ( #18245 )  
							
							
	
		
			
	 
	
	
		
	
	
		
			
				
	CI / cargo fuzz build (push) Blocked by required conditions 
				
			 
		
			
				
	CI / fuzz parser (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test scripts (push) Blocked by required conditions 
				
			 
		
			
				
	CI / ecosystem (push) Blocked by required conditions 
				
			 
		
			
				
	CI / Fuzz for new ty panics (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo shear (push) Blocked by required conditions 
				
			 
		
			
				
	CI / python package (push) Waiting to run 
				
			 
		
			
				
	CI / pre-commit (push) Waiting to run 
				
			 
		
			
				
	CI / mkdocs (push) Waiting to run 
				
			 
		
			
				
	CI / formatter instabilities and black similarity (push) Blocked by required conditions 
				
			 
		
			
				
	CI / test ruff-lsp (push) Blocked by required conditions 
				
			 
		
			
				
	CI / check playground (push) Blocked by required conditions 
				
			 
		
			
				
	CI / benchmarks (push) Blocked by required conditions 
				
			 
		
			
				
	CI / Determine changes (push) Waiting to run 
				
			 
		
			
				
	CI / cargo fmt (push) Waiting to run 
				
			 
		
			
				
	CI / cargo clippy (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (linux) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (linux, release) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (windows) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo test (wasm) (push) Blocked by required conditions 
				
			 
		
			
				
	CI / cargo build (release) (push) Waiting to run 
				
			 
		
			
				
	CI / cargo build (msrv) (push) Blocked by required conditions 
				
			 
		
			
				
	[ty Playground] Release / publish (push) Waiting to run 
				
			 
		
		
	 
 
	 
							
						 
						
							2025-05-21 18:02:39 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									David Peter 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6e39250015 
								
							 
						 
						
							
							
								
								[ty] Allow unions including Any/Unknown as bases ( #18094 )  
							
							... 
							
							
							
							## Summary
Alternative fix for https://github.com/astral-sh/ty/issues/312 
## Test Plan
New Markdown test 
							
						 
						
							2025-05-16 06:57:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7e9b0df18a 
								
							 
						 
						
							
							
								
								[ty] Allow classes to inherit from type[Any] or type[Unknown] ( #18060 )  
							
							
							
						 
						
							2025-05-12 20:30:21 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								41fa082414 
								
							 
						 
						
							
							
								
								[ty] Allow a class to inherit from an intersection if the intersection contains a dynamic type and the intersection is not disjoint from type ( #18055 )  
							
							
							
						 
						
							2025-05-12 23:07:11 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Carl Meyer 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3d2485eb1b 
								
							 
						 
						
							
							
								
								[ty] fix more ecosystem/fuzzer panics with fixpoint ( #17758 )  
							
							... 
							
							
							
							## Summary
Add cycle handling for `try_metaclass` and `pep695_generic_context`
queries, as well as adjusting the cycle handling for `try_mro` to ensure
that it short-circuits on cycles and won't grow MROs indefinitely.
This reduces the number of failing fuzzer seeds from 68 to 17. The
latter count includes fuzzer seeds 120, 160, and 335, all of which
previously panicked but now either hang or are very slow; I've
temporarily skipped those seeds in the fuzzer until I can dig into that
slowness further.
This also allows us to move some more ecosystem projects from `bad.txt`
to `good.txt`, which I've done in
https://github.com/astral-sh/ruff/pull/17903 
## Test Plan
Added mdtests. 
							
						 
						
							2025-05-08 20:36:20 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4d81a41107 
								
							 
						 
						
							
							
								
								[ty] Respect the gradual guarantee when reporting errors in resolving MROs ( #17962 )  
							
							
							
						 
						
							2025-05-08 22:57:39 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2ec0d7e072 
								
							 
						 
						
							
							
								
								[ty] Improve UX for [duplicate-base] diagnostics ( #17914 )  
							
							
							
						 
						
							2025-05-07 15:27:37 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Charlie Marsh 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a2e9a7732a 
								
							 
						 
						
							
							
								
								Update class literal display to use <class 'Foo'> style ( #17889 )  
							
							... 
							
							
							
							## Summary
Closes https://github.com/astral-sh/ruff/issues/17238 . 
							
						 
						
							2025-05-06 20:11:25 -04:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Alex Waygood 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2f9992b6ef 
								
							 
						 
						
							
							
								
								[ty] Fix duplicate diagnostics for unresolved module when an import from statement imports multiple members ( #17886 )  
							
							
							
						 
						
							2025-05-06 12:37:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Micha Reiser 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b51c4f82ea 
								
							 
						 
						
							
							
								
								Rename Red Knot ( #17820 )  
							
							
							
						 
						
							2025-05-03 19:49:15 +02:00