ruff/crates/ty_python_semantic/resources/mdtest/narrow
David Peter 0761ea42d9
[ty] Eagerly evaluate `types.UnionType` elements as type expressions (#21531)
## Summary

Eagerly evaluate the elements of a PEP 604 union in value position (e.g.
`IntOrStr = int | str`) as type expressions and store the result (the
corresponding `Type::Union` if all elements are valid type expressions,
or the first encountered `InvalidTypeExpressionError`) on the
`UnionTypeInstance`, such that the `Type::Union(…)` does not need to be
recomputed every time the implicit type alias is used in a type
annotation.

This might lead to performance improvements for large unions, but is
also necessary for correctness, because the elements of the union might
refer to type variables that need to be looked up in the scope of the
type alias, not at the usage site.

## Test Plan

New Markdown tests
2025-11-20 17:28:48 +01:00
..
conditionals [ty] Use declared variable types as bidirectional type context (#20796) 2025-10-16 15:40:39 -04:00
assert.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
assignment.md [ty] Subscript assignment diagnostics follow-up (#21452) 2025-11-17 11:14:58 +00:00
bool-call.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
boolean.md [ty] Consider `__len__` when determining the truthiness of an instance of a tuple class or a `@final` class (#21049) 2025-10-24 09:29:55 +00:00
complex_target.md [ty] fix global symbol lookup from eager scopes (#21317) 2025-11-12 10:15:51 -08:00
hasattr.md [ty] Improve error messages for unresolved attribute diagnostics (#20963) 2025-10-19 10:58:25 +01:00
isinstance.md [ty] Eagerly evaluate `types.UnionType` elements as type expressions (#21531) 2025-11-20 17:28:48 +01:00
issubclass.md [ty] Eagerly evaluate `types.UnionType` elements as type expressions (#21531) 2025-11-20 17:28:48 +01:00
match.md [ty] Use the top materialization of classes for narrowing in class-patterns for `match` statements (#21150) 2025-10-30 20:44:51 +00:00
post_if_statement.md Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
truthiness.md [ty] Reachability constraints (#18621) 2025-06-17 09:24:28 +02:00
type.md [ty] linear variance inference for PEP-695 type parameters (#18713) 2025-08-19 17:54:09 -07:00
type_guards.md [ty] Filter out `revealed-type` and `undefined-reveal` diagnostics from mdtest snapshots (#20820) 2025-10-12 18:39:32 +00:00
while.md [ty] Eagerly simplify 'True' and 'False' constraints (#18998) 2025-06-30 13:11:52 +02:00