ruff/crates/ty_python_semantic/resources/mdtest
Carl Meyer 99ec4d2c69
Some checks are pending
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
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-instrumented (push) Blocked by required conditions
CI / benchmarks-walltime (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
[ty] detect cycles in binary comparison inference (#20446)
## Summary

Catch infinite recursion in binary-compare inference.

Fixes the stack overflow in `graphql-core` in mypy-primer.

## Test Plan

Added two tests that stack-overflowed before this PR.
2025-09-17 09:45:25 +02:00
..
annotations [ty] Use 'unknown' specialization for upper bound on Self (#20325) 2025-09-10 17:00:28 +02:00
assignment [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
binary [ty] Remove special casing for string-literal-in-tuple __contains__ (#19642) 2025-07-31 11:28:03 +01:00
boolean
boundness_declaredness
call [ty] Temporary hack to reduce false positives around builtins.open() (#20367) 2025-09-12 22:20:38 +01:00
class [ty] Remove use of ClassBase::try_from_type from super() machinery (#19902) 2025-08-14 22:14:31 +01:00
comparison [ty] detect cycles in binary comparison inference (#20446) 2025-09-17 09:45:25 +02:00
comprehensions [ty] Async for loops and async iterables (#19634) 2025-07-30 17:40:24 +02:00
conditional [ty] Support as-patterns in reachability analysis (#19728) 2025-08-04 20:13:50 +02:00
dataclasses [ty] initial support for slots=True in dataclasses (#20278) 2025-09-07 18:25:35 +01:00
declaration
diagnostics [ty] Improve specialization-error diagnostics (#20326) 2025-09-10 14:01:23 +02:00
directives [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
doc
exception [ty] Use separate Rust types for bound and unbound type variables (#19796) 2025-08-11 15:29:58 -04:00
expression [ty] Proper assignability/subtyping checks for protocols with method members (#20165) 2025-09-12 10:10:31 +00:00
function [ty] Improve disambiguation of types via fully qualified names (#20141) 2025-08-29 08:44:18 +00:00
generics [ty] Minor fixes to Protocol tests (#20347) 2025-09-11 14:42:13 +00:00
ide_support [ty] Include NamedTupleFallback members in NamedTuple instance completions (#20356) 2025-09-15 11:00:03 +02:00
import [syntax-errors]: import from * only allowed at module scope (F406) (#20166) 2025-09-16 15:53:28 -04:00
literal [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
loops [ty] Add precise iteration and unpacking inference for string literals and bytes literals (#20023) 2025-08-22 19:33:08 +01:00
narrow [ty] equality narrowing on enums that don't override __eq__ or __ne__ (#20285) 2025-09-08 16:56:28 -07:00
regression
scopes [ty] fix deferred name loading in PEP695 generic classes/functions (#19888) 2025-08-13 15:51:59 -07:00
shadowing
snapshots [ty] Improve specialization-error diagnostics (#20326) 2025-09-10 14:01:23 +02:00
stubs
subscript [ty] __class_getitem__ is a classmethod (#20192) 2025-09-01 11:22:19 +02:00
suppressions
type_compendium [ty] Allow protocols to participate in nominal subtyping as well as structural subtyping (#20314) 2025-09-10 11:05:50 +00:00
type_of [ty] Improve the Display for generic type[] types (#19667) 2025-07-31 19:45:01 +01:00
type_properties [ty] More constraint set simplifications via simpler constraint representation (#20423) 2025-09-16 10:05:01 -04:00
type_qualifiers [ty] Allow annotation expressions to be ast::Attribute nodes (#20413) 2025-09-15 12:06:48 +01:00
unary
with [ty] Diagnostics for async context managers (#19704) 2025-08-05 07:41:37 -07:00
.mdformat.toml
async.md [ty] Support async/await, async with and yield from (#19595) 2025-07-30 11:51:21 +02:00
attributes.md [ty] infer name and value for enum members (#20311) 2025-09-17 09:36:27 +02:00
classes.md [ty] don't assume that deferred type inference means deferred name resolution (#20160) 2025-08-29 16:19:45 -07:00
cycle.md
decorators.md
del.md [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
deprecated.md
descriptor_protocol.md [ty] "foo".startswith is not an instance of types.MethodWrapperType (#20317) 2025-09-10 11:14:26 +00:00
enums.md [ty] infer name and value for enum members (#20311) 2025-09-17 09:36:27 +02:00
exhaustiveness_checking.md [ty] Narrow specialized generics using isinstance() (#20256) 2025-09-04 15:28:33 -07:00
final.md
implicit_type_aliases.md [ty] no more diverging query cycles in type expressions (#20359) 2025-09-16 16:44:11 -07:00
instance_layout_conflict.md [ty] initial support for slots=True in dataclasses (#20278) 2025-09-07 18:25:35 +01:00
intersection_types.md
invalid_syntax.md
known_constants.md
mdtest_config.md
mdtest_custom_typeshed.md [ty] Remove Type::Tuple (#19669) 2025-08-11 22:03:32 +01:00
metaclass.md
mro.md [ty] Treat Hashable, and similar protocols, equivalently to object for subtyping/assignability (#20284) 2025-09-10 11:38:58 +01:00
named_tuple.md [ty] Patch Self for fallback-methods on NamedTuples and TypedDicts (#20328) 2025-09-15 16:21:53 +02:00
overloads.md [ty] Track different uses of legacy typevars, including context when rendering typevars (#19604) 2025-08-01 12:20:32 -04:00
pep695_type_aliases.md [ty] detect cycles in binary comparison inference (#20446) 2025-09-17 09:45:25 +02:00
properties.md [ty] "foo".startswith is not an instance of types.MethodWrapperType (#20317) 2025-09-10 11:14:26 +00:00
protocols.md [ty] Fix subtyping/assignability of function- and class-literal types to callback protocols (#20363) 2025-09-12 22:20:09 +01:00
public_types.md [ty] more precise lazy scope place lookup (#19932) 2025-09-08 21:08:35 +00:00
statically_known_branches.md [ty] Evaluate reachability of non-definitely-bound to Ambiguous (#19579) 2025-08-28 14:34:49 +02:00
sys_platform.md
sys_version_info.md
t_strings.md [ty] Add support for PEP 750 t-strings (#20085) 2025-08-25 18:49:49 +00:00
terminal_statements.md [ty] improve lazy scope place lookup (#19321) 2025-07-25 07:11:11 +00:00
ty_extensions.md [ty] Fix CallableTypeOf[…] for classmethods (#20345) 2025-09-11 10:14:38 +02:00
typed_dict.md [ty] Patch Self for fallback-methods on NamedTuples and TypedDicts (#20328) 2025-09-15 16:21:53 +02:00
union_types.md [ty] Simplify unions of enum literals and subtypes thereof (#20324) 2025-09-10 15:54:06 +02:00
unpacking.md [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
unreachable.md [ty] improve lazy scope place lookup (#19321) 2025-07-25 07:11:11 +00:00