mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-19 01:50:38 +00:00
![]() ## Summary `Type[Any]` should be assignable to `object`. All types should be assignable to `object`. We specifically didn't understand the former; this PR adds a test for it, and a case to ensure that `Type[Any]` is assignable to anything that `type` is assignable to (which includes `object`). This PR also adds a property test that all types are assignable to object. In order to make it pass, I added a special case to check early if we are assigning to `object` and just return `true`. In principle, once we get all the more general cases correct, this special case might be removable. But having the special case for now allows the property test to pass. And we add a property test that all types are subtypes of object. This failed for the case of an intersection with no positive elements (that is, a negation type). This really does need to be a special case for `object`, because there is no other type we can know that a negation type is a subtype of. ## Test Plan Added unit test and property test. --------- Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> |
||
---|---|---|
.. | ||
benches | ||
src | ||
Cargo.toml | ||
README.md |
Ruff Benchmarks
The ruff_benchmark
crate benchmarks the linter and the formatter on individual files:
# Run once on the "baseline".
cargo bench -p ruff_benchmark -- --save-baseline=main
# Compare against the "baseline".
cargo bench -p ruff_benchmark -- --baseline=main
# Run the lexer benchmarks.
cargo bench -p ruff_benchmark lexer -- --baseline=main
See CONTRIBUTING.md on how to use these benchmarks.