ruff/crates/ty_python_semantic/resources/mdtest/dataclasses
David Peter d4eb4277ad
[ty] Add basic support for dataclasses.field (#19553)
## Summary

Add basic support for `dataclasses.field`:
* remove fields with `init=False` from the signature of the synthesized
`__init__` method
* infer correct default value types from `default` or `default_factory`
arguments

```py
from dataclasses import dataclass, field

def default_roles() -> list[str]:
    return ["user"]

@dataclass
class Member:
    name: str
    roles: list[str] = field(default_factory=default_roles)
    tag: str | None = field(default=None, init=False)

# revealed: (self: Member, name: str, roles: list[str] = list[str]) -> None
reveal_type(Member.__init__)
```

Support for `kw_only` has **not** been added.

part of https://github.com/astral-sh/ty/issues/111

## Test Plan

New Markdown tests
2025-07-25 14:56:04 +02:00
..
dataclass_transform.md [ty] Restructure/move dataclass tests (#19117) 2025-07-03 10:36:14 +00:00
dataclasses.md [ty] Pass down specialization to generic dataclass bases (#19472) 2025-07-21 20:51:58 +02:00
fields.md [ty] Add basic support for dataclasses.field (#19553) 2025-07-25 14:56:04 +02:00