@@ -21,7 +21,7 @@ use ruff_text_size::{Ranged, TextRange};
2121use type_ordering:: union_or_intersection_elements_ordering;
2222
2323pub ( crate ) use self :: builder:: { IntersectionBuilder , UnionBuilder } ;
24- pub ( crate ) use self :: cyclic:: TypeVisitor ;
24+ pub ( crate ) use self :: cyclic:: TypeTransformer ;
2525pub use self :: diagnostic:: TypeCheckDiagnostics ;
2626pub ( crate ) use self :: diagnostic:: register_lints;
2727pub ( crate ) use self :: infer:: {
@@ -403,7 +403,7 @@ impl<'db> PropertyInstanceType<'db> {
403403 Self :: new ( db, getter, setter)
404404 }
405405
406- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
406+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
407407 Self :: new (
408408 db,
409409 self . getter ( db) . map ( |ty| ty. normalized_impl ( db, visitor) ) ,
@@ -977,12 +977,16 @@ impl<'db> Type<'db> {
977977 /// - Converts class-based protocols into synthesized protocols
978978 #[ must_use]
979979 pub fn normalized ( self , db : & ' db dyn Db ) -> Self {
980- let mut visitor = TypeVisitor :: default ( ) ;
980+ let mut visitor = TypeTransformer :: default ( ) ;
981981 self . normalized_impl ( db, & mut visitor)
982982 }
983983
984984 #[ must_use]
985- pub ( crate ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
985+ pub ( crate ) fn normalized_impl (
986+ self ,
987+ db : & ' db dyn Db ,
988+ visitor : & mut TypeTransformer < ' db > ,
989+ ) -> Self {
986990 match self {
987991 Type :: Union ( union) => {
988992 visitor. visit ( self , |v| Type :: Union ( union. normalized_impl ( db, v) ) )
@@ -5661,7 +5665,7 @@ impl<'db> TypeMapping<'_, 'db> {
56615665 }
56625666 }
56635667
5664- fn normalized_impl ( & self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
5668+ fn normalized_impl ( & self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
56655669 match self {
56665670 TypeMapping :: Specialization ( specialization) => {
56675671 TypeMapping :: Specialization ( specialization. normalized_impl ( db, visitor) )
@@ -5732,7 +5736,7 @@ fn walk_known_instance_type<'db, V: visitor::TypeVisitor<'db> + ?Sized>(
57325736}
57335737
57345738impl < ' db > KnownInstanceType < ' db > {
5735- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
5739+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
57365740 match self {
57375741 Self :: SubscriptedProtocol ( context) => {
57385742 Self :: SubscriptedProtocol ( context. normalized_impl ( db, visitor) )
@@ -6137,7 +6141,11 @@ impl<'db> TypeVarInstance<'db> {
61376141 }
61386142 }
61396143
6140- pub ( crate ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
6144+ pub ( crate ) fn normalized_impl (
6145+ self ,
6146+ db : & ' db dyn Db ,
6147+ visitor : & mut TypeTransformer < ' db > ,
6148+ ) -> Self {
61416149 Self :: new (
61426150 db,
61436151 self . name ( db) ,
@@ -6206,7 +6214,7 @@ fn walk_type_var_bounds<'db, V: visitor::TypeVisitor<'db> + ?Sized>(
62066214}
62076215
62086216impl < ' db > TypeVarBoundOrConstraints < ' db > {
6209- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
6217+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
62106218 match self {
62116219 TypeVarBoundOrConstraints :: UpperBound ( bound) => {
62126220 TypeVarBoundOrConstraints :: UpperBound ( bound. normalized_impl ( db, visitor) )
@@ -7133,7 +7141,7 @@ impl<'db> BoundMethodType<'db> {
71337141 ) )
71347142 }
71357143
7136- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7144+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
71377145 Self :: new (
71387146 db,
71397147 self . function ( db) . normalized_impl ( db, visitor) ,
@@ -7250,7 +7258,7 @@ impl<'db> CallableType<'db> {
72507258 /// Return a "normalized" version of this `Callable` type.
72517259 ///
72527260 /// See [`Type::normalized`] for more details.
7253- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7261+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
72547262 CallableType :: new (
72557263 db,
72567264 self . signatures ( db) . normalized_impl ( db, visitor) ,
@@ -7408,7 +7416,7 @@ impl<'db> MethodWrapperKind<'db> {
74087416 }
74097417 }
74107418
7411- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7419+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
74127420 match self {
74137421 MethodWrapperKind :: FunctionTypeDunderGet ( function) => {
74147422 MethodWrapperKind :: FunctionTypeDunderGet ( function. normalized_impl ( db, visitor) )
@@ -7516,10 +7524,11 @@ pub struct PEP695TypeAliasType<'db> {
75167524impl get_size2:: GetSize for PEP695TypeAliasType < ' _ > { }
75177525
75187526fn walk_pep_695_type_alias < ' db , V : visitor:: TypeVisitor < ' db > + ?Sized > (
7519- _db : & ' db dyn Db ,
7520- _type_alias : PEP695TypeAliasType < ' db > ,
7521- _visitor : & mut V ,
7527+ db : & ' db dyn Db ,
7528+ type_alias : PEP695TypeAliasType < ' db > ,
7529+ visitor : & mut V ,
75227530) {
7531+ visitor. visit_type ( db, type_alias. value_type ( db) ) ;
75237532}
75247533
75257534#[ salsa:: tracked]
@@ -7541,7 +7550,7 @@ impl<'db> PEP695TypeAliasType<'db> {
75417550 definition_expression_type ( db, definition, & type_alias_stmt_node. value )
75427551 }
75437552
7544- fn normalized_impl ( self , _db : & ' db dyn Db , _visitor : & mut TypeVisitor < ' db > ) -> Self {
7553+ fn normalized_impl ( self , _db : & ' db dyn Db , _visitor : & mut TypeTransformer < ' db > ) -> Self {
75457554 self
75467555 }
75477556}
@@ -7570,7 +7579,7 @@ fn walk_bare_type_alias<'db, V: visitor::TypeVisitor<'db> + ?Sized>(
75707579}
75717580
75727581impl < ' db > BareTypeAliasType < ' db > {
7573- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7582+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
75747583 Self :: new (
75757584 db,
75767585 self . name ( db) ,
@@ -7604,7 +7613,11 @@ fn walk_type_alias_type<'db, V: visitor::TypeVisitor<'db> + ?Sized>(
76047613}
76057614
76067615impl < ' db > TypeAliasType < ' db > {
7607- pub ( crate ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7616+ pub ( crate ) fn normalized_impl (
7617+ self ,
7618+ db : & ' db dyn Db ,
7619+ visitor : & mut TypeTransformer < ' db > ,
7620+ ) -> Self {
76087621 match self {
76097622 TypeAliasType :: PEP695 ( type_alias) => {
76107623 TypeAliasType :: PEP695 ( type_alias. normalized_impl ( db, visitor) )
@@ -7830,10 +7843,14 @@ impl<'db> UnionType<'db> {
78307843 /// See [`Type::normalized`] for more details.
78317844 #[ must_use]
78327845 pub ( crate ) fn normalized ( self , db : & ' db dyn Db ) -> Self {
7833- self . normalized_impl ( db, & mut TypeVisitor :: default ( ) )
7846+ self . normalized_impl ( db, & mut TypeTransformer :: default ( ) )
78347847 }
78357848
7836- pub ( crate ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7849+ pub ( crate ) fn normalized_impl (
7850+ self ,
7851+ db : & ' db dyn Db ,
7852+ visitor : & mut TypeTransformer < ' db > ,
7853+ ) -> Self {
78377854 let mut new_elements: Vec < Type < ' db > > = self
78387855 . elements ( db)
78397856 . iter ( )
@@ -7904,15 +7921,19 @@ impl<'db> IntersectionType<'db> {
79047921 /// See [`Type::normalized`] for more details.
79057922 #[ must_use]
79067923 pub ( crate ) fn normalized ( self , db : & ' db dyn Db ) -> Self {
7907- let mut visitor = TypeVisitor :: default ( ) ;
7924+ let mut visitor = TypeTransformer :: default ( ) ;
79087925 self . normalized_impl ( db, & mut visitor)
79097926 }
79107927
7911- pub ( crate ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
7928+ pub ( crate ) fn normalized_impl (
7929+ self ,
7930+ db : & ' db dyn Db ,
7931+ visitor : & mut TypeTransformer < ' db > ,
7932+ ) -> Self {
79127933 fn normalized_set < ' db > (
79137934 db : & ' db dyn Db ,
79147935 elements : & FxOrderSet < Type < ' db > > ,
7915- visitor : & mut TypeVisitor < ' db > ,
7936+ visitor : & mut TypeTransformer < ' db > ,
79167937 ) -> FxOrderSet < Type < ' db > > {
79177938 let mut elements: FxOrderSet < Type < ' db > > = elements
79187939 . iter ( )
@@ -8165,7 +8186,7 @@ pub enum SuperOwnerKind<'db> {
81658186}
81668187
81678188impl < ' db > SuperOwnerKind < ' db > {
8168- fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
8189+ fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeTransformer < ' db > ) -> Self {
81698190 match self {
81708191 SuperOwnerKind :: Dynamic ( dynamic) => SuperOwnerKind :: Dynamic ( dynamic. normalized ( ) ) ,
81718192 SuperOwnerKind :: Class ( class) => {
@@ -8423,7 +8444,11 @@ impl<'db> BoundSuperType<'db> {
84238444 }
84248445 }
84258446
8426- pub ( super ) fn normalized_impl ( self , db : & ' db dyn Db , visitor : & mut TypeVisitor < ' db > ) -> Self {
8447+ pub ( super ) fn normalized_impl (
8448+ self ,
8449+ db : & ' db dyn Db ,
8450+ visitor : & mut TypeTransformer < ' db > ,
8451+ ) -> Self {
84278452 Self :: new (
84288453 db,
84298454 self . pivot_class ( db) . normalized_impl ( db, visitor) ,
0 commit comments