ruff/crates
David Peter e55bc943e5
[ty] Reachability and narrowing for enum methods (#21130)
## Summary

Adds proper type narrowing and reachability analysis for matching on
non-inferable type variables bound to enums. For example:

```py
from enum import Enum

class Answer(Enum):
    NO = 0
    YES = 1

    def is_yes(self) -> bool:  # no error here!
        match self:
            case Answer.YES:
                return True
            case Answer.NO:
                return False
```

closes https://github.com/astral-sh/ty/issues/1404

## Test Plan

Added regression tests
2025-10-30 15:38:57 +01:00
..
ruff Respect --output-format with --watch (#21097) 2025-10-27 12:04:55 -04:00
ruff_annotate_snippets Display diffs for ruff format --check and add support for different output formats (#20443) 2025-09-30 12:00:51 -04:00
ruff_benchmark [ty] Infer type of self for decorated methods and properties (#21123) 2025-10-29 21:22:38 +00:00
ruff_cache
ruff_db Update Rust crate ignore to v0.4.24 (#20979) 2025-10-28 17:49:26 +00:00
ruff_dev Document when a rule was added (#21035) 2025-10-23 14:48:41 -04:00
ruff_diagnostics Fix rust feature activation (#20012) 2025-08-21 09:26:06 +02:00
ruff_formatter Display diffs for ruff format --check and add support for different output formats (#20443) 2025-09-30 12:00:51 -04:00
ruff_graph [ty] Limit shown import paths to at most 5 unless ty runs with -v (#20912) 2025-10-16 13:18:09 +02:00
ruff_index
ruff_linter [ruff] Add support for additional eager conversion patterns (RUF065) (#20657) 2025-10-29 21:45:08 +00:00
ruff_macros Document when a rule was added (#21035) 2025-10-23 14:48:41 -04:00
ruff_memory_usage [ty] Clean up inherited generic contexts (#20647) 2025-10-03 13:55:43 -04:00
ruff_notebook Display diffs for ruff format --check and add support for different output formats (#20443) 2025-09-30 12:00:51 -04:00
ruff_options_metadata
ruff_python_ast [ruff] Autogenerate TypeParam nodes (#21028) 2025-10-22 14:06:24 +02:00
ruff_python_ast_integration_tests
ruff_python_codegen Configurable "unparse mode" for ruff_python_codegen::Generator (#21041) 2025-10-24 15:44:48 +00:00
ruff_python_formatter Fix finding keyword range for clause header after statement ending with semicolon (#21067) 2025-10-27 09:52:17 -05:00
ruff_python_importer [ruff] Add API for splicing into an existing import statement 2025-09-17 13:59:28 -04:00
ruff_python_index Track t-strings and f-strings for token-based rules and suppression comments (#20357) 2025-09-12 13:00:12 -05:00
ruff_python_literal
ruff_python_parser [ruff] Autogenerate TypeParam nodes (#21028) 2025-10-22 14:06:24 +02:00
ruff_python_semantic [pyflakes] Revert to stable behavior if imports for module lie in alternate branches for F401 (#20878) 2025-10-27 10:23:36 -05:00
ruff_python_stdlib [ruff] Extend FA102 with listed PEP 585-compatible APIs (#20659) 2025-10-03 09:45:32 -04:00
ruff_python_trivia Handle t-string prefixes in SimpleTokenizer (#20578) 2025-09-25 14:33:37 -05:00
ruff_python_trivia_integration_tests Handle t-string prefixes in SimpleTokenizer (#20578) 2025-09-25 14:33:37 -05:00
ruff_server Avoid sending an unnecessary "clear diagnostics" message for clients supporting pull diagnostics (#21105) 2025-10-28 18:24:35 +00:00
ruff_source_file Move diff rendering to ruff_db (#20006) 2025-08-21 09:47:00 -04:00
ruff_text_size [ruff] Update schemars to v1 (#20942) 2025-10-20 08:59:52 +02:00
ruff_wasm Bump 0.14.2 (#21051) 2025-10-23 15:17:22 -04:00
ruff_workspace Update Rust crate ignore to v0.4.24 (#20979) 2025-10-28 17:49:26 +00:00
ty [ty] Add --no-progress option (#21063) 2025-10-24 18:00:00 +02:00
ty_combine [ty] Disallow std::env and io methods in most ty crates (#20046) 2025-08-22 11:13:47 -07:00
ty_completion_eval [ty] Add evaluation test for auto-import including symbols in current module 2025-10-29 09:13:49 -04:00
ty_ide [ty] Infer type of self for decorated methods and properties (#21123) 2025-10-29 21:22:38 +00:00
ty_project [ruff] Update schemars to v1 (#20942) 2025-10-20 08:59:52 +02:00
ty_python_semantic [ty] Reachability and narrowing for enum methods (#21130) 2025-10-30 15:38:57 +01:00
ty_server [ty] Render import <...> in completions when "label details" isn't supported 2025-10-29 08:50:41 -04:00
ty_static [ty] improve base conda distinction from child conda (#20675) 2025-10-03 13:56:06 +00:00
ty_test [ty] Fix bug where ty would think all types had an __mro__ attribute (#20995) 2025-10-27 11:19:12 +00:00
ty_vendored [ty] Move constraint set mdtest functions into ConstraintSet class (#21108) 2025-10-28 14:32:41 -04:00
ty_wasm [ruff,ty] Enable tracing's log feature 2025-10-03 08:18:03 -04:00