[ty] Respect subclass shadowing for inherited NamedTuple fields by charliermarsh · Pull Request #24640 · astral-sh/ruff (original) (raw)

diff --git a/crates/ty_python_semantic/src/types/class.rs b/crates/ty_python_semantic/src/types/class.rs index ea809d830a..b0ca88fb50 100644 --- a/crates/ty_python_semantic/src/types/class.rs +++ b/crates/ty_python_semantic/src/types/class.rs @@ -1724,7 +1724,7 @@ impl<'db> ClassType<'db> { dynamic.own_instance_member(db, name) } Self::NonGeneric(ClassLiteral::DynamicNamedTuple(namedtuple)) => {

diff --git a/crates/ty_python_semantic/src/types/class/named_tuple.rs b/crates/ty_python_semantic/src/types/class/named_tuple.rs index a62f36403f..a2026a51a5 100644 --- a/crates/ty_python_semantic/src/types/class/named_tuple.rs +++ b/crates/ty_python_semantic/src/types/class/named_tuple.rs @@ -275,7 +275,7 @@ impl<'db> DynamicNamedTupleLiteral<'db> { /// /// NamedTuple fields are exposed via synthesized descriptors on the class rather than /// instance attributes. If fields are unknown (dynamic), return Any for any attribute.

@@ -286,7 +286,7 @@ impl<'db> DynamicNamedTupleLiteral<'db> { /// Look up an instance member by name (including superclasses). pub(crate) fn instance_member(self, db: &'db dyn Db, name: &str) -> PlaceAndQualifiers<'db> { // First check own instance members.