@@ -101,17 +101,11 @@ impl FlagComputation {
101
101
102
102
& ty:: Param ( _) => {
103
103
self . add_flags ( TypeFlags :: HAS_TY_PARAM ) ;
104
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
105
104
}
106
105
107
106
ty:: Coroutine ( _, args) => {
108
107
let args = args. as_coroutine ( ) ;
109
- let should_remove_further_specializable =
110
- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
111
108
self . add_args ( args. parent_args ( ) ) ;
112
- if should_remove_further_specializable {
113
- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
114
- }
115
109
116
110
self . add_ty ( args. kind_ty ( ) ) ;
117
111
self . add_ty ( args. resume_ty ( ) ) ;
@@ -122,22 +116,12 @@ impl FlagComputation {
122
116
}
123
117
124
118
ty:: CoroutineWitness ( _, args) => {
125
- let should_remove_further_specializable =
126
- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
127
119
self . add_args ( args) ;
128
- if should_remove_further_specializable {
129
- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
130
- }
131
120
}
132
121
133
122
& ty:: Closure ( _, args) => {
134
123
let args = args. as_closure ( ) ;
135
- let should_remove_further_specializable =
136
- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
137
124
self . add_args ( args. parent_args ( ) ) ;
138
- if should_remove_further_specializable {
139
- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
140
- }
141
125
142
126
self . add_ty ( args. sig_as_fn_ptr_ty ( ) ) ;
143
127
self . add_ty ( args. kind_ty ( ) ) ;
@@ -146,12 +130,7 @@ impl FlagComputation {
146
130
147
131
& ty:: CoroutineClosure ( _, args) => {
148
132
let args = args. as_coroutine_closure ( ) ;
149
- let should_remove_further_specializable =
150
- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
151
133
self . add_args ( args. parent_args ( ) ) ;
152
- if should_remove_further_specializable {
153
- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
154
- }
155
134
156
135
self . add_ty ( args. kind_ty ( ) ) ;
157
136
self . add_ty ( args. signature_parts_ty ( ) ) ;
@@ -167,21 +146,17 @@ impl FlagComputation {
167
146
168
147
& ty:: Placeholder ( ..) => {
169
148
self . add_flags ( TypeFlags :: HAS_TY_PLACEHOLDER ) ;
170
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
171
149
}
172
150
173
- & ty:: Infer ( infer) => {
174
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
175
- match infer {
176
- ty:: FreshTy ( _) | ty:: FreshIntTy ( _) | ty:: FreshFloatTy ( _) => {
177
- self . add_flags ( TypeFlags :: HAS_TY_FRESH )
178
- }
151
+ & ty:: Infer ( infer) => match infer {
152
+ ty:: FreshTy ( _) | ty:: FreshIntTy ( _) | ty:: FreshFloatTy ( _) => {
153
+ self . add_flags ( TypeFlags :: HAS_TY_FRESH )
154
+ }
179
155
180
- ty:: TyVar ( _) | ty:: IntVar ( _) | ty:: FloatVar ( _) => {
181
- self . add_flags ( TypeFlags :: HAS_TY_INFER )
182
- }
156
+ ty:: TyVar ( _) | ty:: IntVar ( _) | ty:: FloatVar ( _) => {
157
+ self . add_flags ( TypeFlags :: HAS_TY_INFER )
183
158
}
184
- }
159
+ } ,
185
160
186
161
& ty:: Adt ( _, args) => {
187
162
self . add_args ( args) ;
@@ -358,24 +333,19 @@ impl FlagComputation {
358
333
self . add_args ( uv. args ) ;
359
334
self . add_flags ( TypeFlags :: HAS_CT_PROJECTION ) ;
360
335
}
361
- ty:: ConstKind :: Infer ( infer) => {
362
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
363
- match infer {
364
- InferConst :: Fresh ( _) => self . add_flags ( TypeFlags :: HAS_CT_FRESH ) ,
365
- InferConst :: Var ( _) => self . add_flags ( TypeFlags :: HAS_CT_INFER ) ,
366
- }
367
- }
336
+ ty:: ConstKind :: Infer ( infer) => match infer {
337
+ InferConst :: Fresh ( _) => self . add_flags ( TypeFlags :: HAS_CT_FRESH ) ,
338
+ InferConst :: Var ( _) => self . add_flags ( TypeFlags :: HAS_CT_INFER ) ,
339
+ } ,
368
340
ty:: ConstKind :: Bound ( debruijn, _) => {
369
341
self . add_bound_var ( debruijn) ;
370
342
self . add_flags ( TypeFlags :: HAS_CT_BOUND ) ;
371
343
}
372
344
ty:: ConstKind :: Param ( _) => {
373
345
self . add_flags ( TypeFlags :: HAS_CT_PARAM ) ;
374
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
375
346
}
376
347
ty:: ConstKind :: Placeholder ( _) => {
377
348
self . add_flags ( TypeFlags :: HAS_CT_PLACEHOLDER ) ;
378
- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
379
349
}
380
350
ty:: ConstKind :: Value ( cv) => self . add_ty ( cv. ty ) ,
381
351
ty:: ConstKind :: Expr ( e) => self . add_args ( e. args ( ) ) ,
0 commit comments