ruff/crates/ty_python_semantic/src
Abhijeet Prasad Bodas 68b0386007
[ty] Implement `DataClassInstance` protocol for dataclasses. (#18018)
Fixes: https://github.com/astral-sh/ty/issues/92

## Summary

We currently get a `invalid-argument-type` error when using
`dataclass.fields` on a dataclass, because we do not synthesize the
`__dataclass_fields__` member.

This PR fixes this diagnostic.

Note that we do not yet model the `Field` type correctly. After that is
done, we can assign a more precise `tuple[Field, ...]` type to this new
member.

## Test Plan
New mdtest.

---------

Co-authored-by: David Peter <mail@david-peter.de>
2025-05-13 10:31:26 +02:00
..
module_resolver Update `--python` to accept paths to executables in virtual environments (#17954) 2025-05-12 15:39:04 -05:00
semantic_index Fix typos (#17988) 2025-05-09 14:57:14 -04:00
types [ty] Implement `DataClassInstance` protocol for dataclasses. (#18018) 2025-05-13 10:31:26 +02:00
util Use `#[expect(lint)]` over `#[allow(lint)]` where possible (#17822) 2025-05-03 21:20:31 +02:00
ast_node_ref.rs Use `#[expect(lint)]` over `#[allow(lint)]` where possible (#17822) 2025-05-03 21:20:31 +02:00
db.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00
dunder_all.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00
lib.rs [ty] Add support for `__all__` (#17856) 2025-05-07 21:42:42 +05:30
lint.rs [ty] Ignore `possibly-unresolved-reference` by default (#17934) 2025-05-08 17:44:56 +02:00
list.rs Use `#[expect(lint)]` over `#[allow(lint)]` where possible (#17822) 2025-05-03 21:20:31 +02:00
module_name.rs Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
node_key.rs Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
program.rs Update `--python` to accept paths to executables in virtual environments (#17954) 2025-05-12 15:39:04 -05:00
python_platform.rs Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
semantic_index.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00
semantic_model.rs Rename Red Knot (#17820) 2025-05-03 19:49:15 +02:00
site_packages.rs [ty] Do not allow invalid virtual environments from discovered `.venv` or `VIRTUAL_ENV` (#18003) 2025-05-10 20:36:12 +00:00
suppression.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00
symbol.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00
types.rs [ty] Implement `DataClassInstance` protocol for dataclasses. (#18018) 2025-05-13 10:31:26 +02:00
unpack.rs [ty] Update salsa (#17964) 2025-05-09 11:54:07 +02:00