@@ -102,6 +102,16 @@ impl<'i, I: Interner, DB: RustIrDatabase<I>> IdCollector<'i, I, DB> {
102
102
fn record ( & mut self , id : impl Into < RecordedItemId < I > > ) {
103
103
self . found_identifiers . insert ( id. into ( ) ) ;
104
104
}
105
+
106
+ fn visit_alias ( & mut self , alias : & AliasTy < I > ) {
107
+ match alias {
108
+ AliasTy :: Projection ( projection_ty) => {
109
+ let assoc_ty_datum = self . db . associated_ty_data ( projection_ty. associated_ty_id ) ;
110
+ self . record ( assoc_ty_datum. trait_id )
111
+ }
112
+ AliasTy :: Opaque ( opaque_ty) => self . record ( opaque_ty. opaque_ty_id ) ,
113
+ }
114
+ }
105
115
}
106
116
107
117
impl < ' i , I : Interner , DB : RustIrDatabase < I > > Visitor < ' i , I > for IdCollector < ' i , I , DB >
@@ -126,15 +136,7 @@ where
126
136
TyKind :: Adt ( adt, _) => self . record ( * adt) ,
127
137
TyKind :: FnDef ( fn_def, _) => self . record ( * fn_def) ,
128
138
TyKind :: OpaqueType ( opaque, _) => self . record ( * opaque) ,
129
- TyKind :: Alias ( alias) => match alias {
130
- AliasTy :: Projection ( projection_ty) => {
131
- let assoc_ty_datum = self . db . associated_ty_data ( projection_ty. associated_ty_id ) ;
132
- self . record ( assoc_ty_datum. trait_id )
133
- }
134
- AliasTy :: Opaque ( opaque_ty) => {
135
- self . record ( opaque_ty. opaque_ty_id ) ;
136
- }
137
- } ,
139
+ TyKind :: Alias ( alias) => self . visit_alias ( & alias) ,
138
140
TyKind :: BoundVar ( ..) => ( ) ,
139
141
TyKind :: Dyn ( ..) => ( ) ,
140
142
TyKind :: Function ( ..) => ( ) ,
@@ -152,15 +154,7 @@ where
152
154
) -> ControlFlow < ( ) > {
153
155
match where_clause {
154
156
WhereClause :: Implemented ( trait_ref) => self . record ( trait_ref. trait_id ) ,
155
- WhereClause :: AliasEq ( alias_eq) => match & alias_eq. alias {
156
- AliasTy :: Projection ( projection_ty) => {
157
- let assoc_ty_datum = self . db . associated_ty_data ( projection_ty. associated_ty_id ) ;
158
- self . record ( assoc_ty_datum. trait_id )
159
- }
160
- AliasTy :: Opaque ( opaque_ty) => {
161
- self . record ( opaque_ty. opaque_ty_id ) ;
162
- }
163
- } ,
157
+ WhereClause :: AliasEq ( alias_eq) => self . visit_alias ( & alias_eq. alias ) ,
164
158
WhereClause :: LifetimeOutlives ( _lifetime_outlives) => ( ) ,
165
159
WhereClause :: TypeOutlives ( _type_outlives) => ( ) ,
166
160
}
0 commit comments