ruff/crates/ty_python_semantic/resources/mdtest
David Peter c8133104e8
[ty] Use field-specifier return type as the default type for the field (#20915)
## Summary

`dataclasses.field` and field-specifier functions of commonly used
libraries like `pydantic`, `attrs`, and `SQLAlchemy` all return the
default type for the field (or `Any`) instead of an actual `Field`
instance, even if this is not what happens at runtime. Let's make use of
this fact and assume that *all* field specifiers return the type of the
default value of the field.

For standard dataclasses, this leads to more or less the same outcome
(see test diff for details), but this change is important for 3rd party
dataclass-transformers.

## Test Plan

Tested the consequences of this change on the field-specifiers branch as
well.
2025-10-16 13:13:45 +02:00
..
annotations [ty] Do not bind self to non-positional parameters (#20850) 2025-10-13 20:44:27 +02:00
assignment [ty] bidirectional type inference using function return type annotations (#20528) 2025-10-11 00:38:35 +00:00
binary [ty] Sync vendored typeshed stubs (#20876) 2025-10-15 11:13:32 +02:00
boolean
boundness_declaredness [ty] Reformulation of public symbol inference test suite (#20667) 2025-10-01 14:26:17 +02:00
call [ty] Heterogeneous unpacking support for unions (#20377) 2025-10-15 19:30:03 +01:00
class [ty] Fix further issues in super() inference logic (#20843) 2025-10-14 12:48:47 +00:00
comparison [ty] detect cycles in binary comparison inference (#20446) 2025-09-17 09:45:25 +02:00
comprehensions
conditional
dataclasses [ty] Use field-specifier return type as the default type for the field (#20915) 2025-10-16 13:13:45 +02:00
declaration
diagnostics [ty] defer inference of legacy TypeVar bound/constraints/defaults (#20598) 2025-10-09 21:08:37 +00:00
directives [ty] Use annotated parameters as type context (#20635) 2025-10-03 17:14:51 -04:00
doc
exception [ty] Filter out revealed-type and undefined-reveal diagnostics from mdtest snapshots (#20820) 2025-10-12 18:39:32 +00:00
expression [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
function [ty] Improve disambiguation of types via fully qualified names (#20141) 2025-08-29 08:44:18 +00:00
generics [ty] Diagnostic for generic classes that reference typevars in enclosing scope (#20822) 2025-10-13 19:30:49 -04:00
ide_support [ty] Filter out revealed-type and undefined-reveal diagnostics from mdtest snapshots (#20820) 2025-10-12 18:39:32 +00:00
import [ty] No union with Unknown for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
literal [ty] Treat functions, methods, and dynamic types as function-like Callables (#20842) 2025-10-13 15:21:55 +02:00
loops [ty] Heterogeneous unpacking support for unions (#20377) 2025-10-15 19:30:03 +01:00
narrow [ty] Fix match pattern value narrowing to use equality semantics (#20882) 2025-10-16 07:50:32 +00:00
regression
scopes Update default and latest Python versions for 3.14 (#20725) 2025-10-07 12:23:11 -04:00
shadowing
snapshots [ty] Sync vendored typeshed stubs (#20876) 2025-10-15 11:13:32 +02:00
stubs Update default and latest Python versions for 3.14 (#20725) 2025-10-07 12:23:11 -04:00
subscript [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00
suppressions
type_compendium [ty] Heterogeneous unpacking support for unions (#20377) 2025-10-15 19:30:03 +01:00
type_of
type_properties [ty] Treat Callable dunder members as bound method descriptors (#20860) 2025-10-14 14:27:52 +02:00
type_qualifiers [ty] Allow annotation expressions to be ast::Attribute nodes (#20413) 2025-09-15 12:06:48 +01:00
unary
with [ty] Use typing.Self for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
.mdformat.toml
async.md
attributes.md [ty] Sync vendored typeshed stubs (#20876) 2025-10-15 11:13:32 +02:00
bidirectional.md [ty] bidirectional type inference using function return type annotations (#20528) 2025-10-11 00:38:35 +00: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] No union with Unknown for module-global symbols (#20664) 2025-10-01 16:40:30 +02:00
deprecated.md
descriptor_protocol.md [ty] Use typing.Self for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
enums.md [ty] Enums: allow multiple aliases to point to the same member (#20669) 2025-10-01 15:51:53 +02:00
exhaustiveness_checking.md [ty] Fix subtyping for dynamic specializations (#20592) 2025-09-26 15:05:03 +02: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] Filter out revealed-type and undefined-reveal diagnostics from mdtest snapshots (#20820) 2025-10-12 18:39:32 +00:00
named_tuple.md [ty] Use typing.Self for the first parameter of instance methods (#20517) 2025-09-29 21:08:08 +02:00
overloads.md [ty] Improve diagnostics for bad @overload definitions (#20745) 2025-10-07 21:52:57 +00:00
pep695_type_aliases.md [ty] defer inference of legacy TypeVar bound/constraints/defaults (#20598) 2025-10-09 21:08:37 +00: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] Filter out revealed-type and undefined-reveal diagnostics from mdtest snapshots (#20820) 2025-10-12 18:39:32 +00:00
public_types.md [ty] Disambiguate classes that live in different modules but have the same fully qualified names (#20756) 2025-10-08 18:27:40 +01:00
statically_known_branches.md [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00: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 [ty] Simplify and fix CallableTypeOf[..] implementation (#20797) 2025-10-10 12:04:37 +02:00
typed_dict.md [ty] bidirectional type inference using function return type annotations (#20528) 2025-10-11 00:38:35 +00:00
union_types.md [ty] Introduce TypeRelation::Redundancy (#20602) 2025-10-03 18:35:30 +01:00
unpacking.md [ty] Infer more precise types for collection literals (#20360) 2025-09-17 18:51:50 -04:00
unreachable.md [ty] Rename "possibly unbound" diagnostics to "possibly missing" (#20492) 2025-09-23 14:26:55 +00:00