mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:48:32 +00:00
![]() In the new diagnostic data model, we really should have a main diagnostic message *and* a primary span (with an optional message attached to it) for every diagnostic. In this commit, I try to make this true for the "revealed type" diagnostic. Instead of the annotation saying both "revealed type is" and also the revealed type itself, the annotation is now just the revealed type and the main diagnostic message is "Revealed type." I expect this may be controversial. I'm open to doing something different. I tried to avoid redundancy, but maybe this is a special case where we want the redundancy. I'm honestly not sure. I do *like* how it looks with this commit, but I'm not working with Red Knot's type checking daily, so my opinion doesn't count for much. This did also require some tweaking to concise diagnostic formatting in order to preserve the essential information. This commit doesn't update every relevant snapshot. Just a few. I split the rest out into the next commit. |
||
---|---|---|
.. | ||
docs | ||
src | ||
tests | ||
build.rs | ||
Cargo.toml | ||
README.md |
Red Knot
Red Knot is an extremely fast type checker. Currently, it is a work-in-progress and not ready for user testing.
Red Knot is designed to prioritize good type inference, even in unannotated code, and aims to avoid false positives.
While Red Knot will produce similar results to mypy and pyright on many codebases, 100% compatibility with these tools is a non-goal. On some codebases, Red Knot's design decisions lead to different outcomes than you would get from running one of these more established tools.
Contributing
Core type checking tests are written as Markdown code blocks.
They can be found in red_knot_python_semantic/resources/mdtest
.
See red_knot_test/README.md
for more information
on the test framework itself.
The list of open issues can be found here.