ruff/crates/ty
Brent Westbrook 981bd70d39
Convert `Message::SyntaxError` to use `Diagnostic` internally (#17784)
## Summary

This PR is a first step toward integration of the new `Diagnostic` type
into ruff. There are two main changes:
- A new `UnifiedFile` enum wrapping `File` for red-knot and a
`SourceFile` for ruff
- ruff's `Message::SyntaxError` variant is now a `Diagnostic` instead of
a `SyntaxErrorMessage`

The second of these changes was mostly just a proof of concept for the
first, and it went pretty smoothly. Converting `DiagnosticMessage`s will
be most of the work in replacing `Message` entirely.

## Test Plan

Existing tests, which show no changes.

---------

Co-authored-by: Carl Meyer <carl@astral.sh>
Co-authored-by: Micha Reiser <micha@reiser.io>
2025-05-08 12:45:51 -04:00
..
docs [ty] Make `unused-ignore-comment` disabled by default for now (#17955) 2025-05-08 17:21:34 +01:00
src Convert `Message::SyntaxError` to use `Diagnostic` internally (#17784) 2025-05-08 12:45:51 -04:00
tests [ty] Change default severity for `unbound-reference` to `error` (#17936) 2025-05-08 17:54:46 +02:00
Cargo.toml Update ty metadata (#17943) 2025-05-08 13:24:31 +02:00
README.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
build.rs Parse `dist-workspace.toml` for version (#17868) 2025-05-06 12:18:17 +00:00

README.md

ty

ty is an extremely fast type checker. Currently, it is a work-in-progress and not ready for user testing.

ty is designed to prioritize good type inference, even in unannotated code, and aims to avoid false positives.

While ty will produce similar results to mypy and pyright on many codebases, 100% compatibility with these tools is a non-goal. On some codebases, ty'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 ty_python_semantic/resources/mdtest. See ty_test/README.md for more information on the test framework itself.

The list of open issues can be found here.