@@ -11,7 +11,7 @@ use crate::types::constraints::{ConstraintSet, IteratorConstraintsExtension};
1111use crate :: types:: enums:: is_single_member_enum;
1212use crate :: types:: generics:: { InferableTypeVars , walk_specialization} ;
1313use crate :: types:: protocol_class:: walk_protocol_interface;
14- use crate :: types:: tuple:: { TupleSpec , TupleType } ;
14+ use crate :: types:: tuple:: { TupleSpec , TupleType , walk_tuple_type } ;
1515use crate :: types:: {
1616 ApplyTypeMappingVisitor , ClassBase , ClassLiteral , FindLegacyTypeVarsVisitor ,
1717 HasRelationToVisitor , IsDisjointVisitor , IsEquivalentVisitor , NormalizedVisitor ,
@@ -196,7 +196,15 @@ pub(super) fn walk_nominal_instance_type<'db, V: super::visitor::TypeVisitor<'db
196196 nominal : NominalInstanceType < ' db > ,
197197 visitor : & V ,
198198) {
199- visitor. visit_type ( db, nominal. class ( db) . into ( ) ) ;
199+ match nominal. 0 {
200+ NominalInstanceInner :: ExactTuple ( tuple) => {
201+ walk_tuple_type ( db, tuple, visitor) ;
202+ }
203+ NominalInstanceInner :: Object => { }
204+ NominalInstanceInner :: NonTuple ( class) => {
205+ visitor. visit_type ( db, class. into ( ) ) ;
206+ }
207+ }
200208}
201209
202210impl < ' db > NominalInstanceType < ' db > {
0 commit comments