ruff/crates/ty_python_semantic/resources/mdtest
Carl Meyer 8223fea062
[ty] ensure union normalization really normalizes (#20147)
## Summary

Now that we have `Type::TypeAlias`, which can wrap a union, and the
possibility of unions including non-unpacked type aliases (which is
necessary to support recursive type aliases), we can no longer assume in
`UnionType::normalized_impl` that normalizing each element of an
existing union will result in a set of elements that we can order and
then place raw into `UnionType` to create a normalized union. It's now
possible for those elements to themselves include union types (unpacked
from an alias). So instead, we need to feed those elements into the full
`UnionBuilder` (with alias-unpacking turned on) to flatten/normalize
them, and then order them.

## Test Plan

Added mdtest.

---------

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
2025-08-29 09:02:35 -07:00
..
annotations [ty] Preserve qualifiers when accessing attributes on unions/intersections (#20114) 2025-08-27 20:01:45 +02:00
assignment [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
binary
boolean
boundness_declaredness
call [ty] Unpack variadic argument type in specialization (#20130) 2025-08-29 04:27:28 +00:00
class [ty] Remove use of ClassBase::try_from_type from super() machinery (#19902) 2025-08-14 22:14:31 +01:00
comparison
comprehensions
conditional
dataclasses [ty] correctly ignore field specifiers when not specified (#20002) 2025-08-20 11:33:23 -07:00
declaration
diagnostics [ty] print diagnostics with fully qualified name to disambiguate some cases (#19850) 2025-08-27 20:46:07 +00: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
function [ty] Improve disambiguation of types via fully qualified names (#20141) 2025-08-29 08:44:18 +00:00
generics [ty] Perform assignability etc checks using new Constraints trait (#19838) 2025-08-21 09:30:09 -04:00
ide_support
import [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01: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] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01: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] Better error message for attempting to assign to a read-only property (#20150) 2025-08-29 13:22:23 +00:00
stubs
subscript [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
suppressions
type_compendium [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
type_of
type_properties [ty] Introduce a representation for the top/bottom materialization of an invariant generic (#20076) 2025-08-27 17:53:57 -07:00
type_qualifiers
unary
with
.mdformat.toml
async.md
attributes.md [ty] Fix 'too many cycle iterations' for unions of literals (#20137) 2025-08-28 16:46:37 +02: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] Better error message for attempting to assign to a read-only property (#20150) 2025-08-29 13:22:23 +00:00
enums.md [ty] Infer the correct type of Enum __eq__ and __ne__ comparisions (#19666) 2025-08-18 19:45:44 +02:00
exhaustiveness_checking.md [ty] Add precise iteration and unpacking inference for string literals and bytes literals (#20023) 2025-08-22 19:33:08 +01:00
final.md
instance_layout_conflict.md [ty] Add support for PEP 800 (#20084) 2025-08-25 19:39:05 +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
named_tuple.md [ty] Better error message for attempting to assign to a read-only property (#20150) 2025-08-29 13:22:23 +00:00
overloads.md
pep695_type_aliases.md [ty] ensure union normalization really normalizes (#20147) 2025-08-29 09:02:35 -07:00
properties.md
protocols.md [ty] Enforce that an attribute on a class X must be callable in order to satisfy a member on a protocol P (#20142) 2025-08-29 08:31:26 +01:00
public_types.md
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_extensions.md
typed_dict.md [ty] typecheck dict methods for TypedDict (#19874) 2025-08-29 16:25:03 +02:00
union_types.md
unpacking.md [ty] Infer slightly more precise types for comprehensions (#20111) 2025-08-27 13:21:47 +01:00
unreachable.md