@@ -101,17 +101,11 @@ impl FlagComputation {
101101
102102 & ty:: Param ( _) => {
103103 self . add_flags ( TypeFlags :: HAS_TY_PARAM ) ;
104- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
105104 }
106105
107106 ty:: Coroutine ( _, args) => {
108107 let args = args. as_coroutine ( ) ;
109- let should_remove_further_specializable =
110- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
111108 self . add_args ( args. parent_args ( ) ) ;
112- if should_remove_further_specializable {
113- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
114- }
115109
116110 self . add_ty ( args. kind_ty ( ) ) ;
117111 self . add_ty ( args. resume_ty ( ) ) ;
@@ -122,22 +116,12 @@ impl FlagComputation {
122116 }
123117
124118 ty:: CoroutineWitness ( _, args) => {
125- let should_remove_further_specializable =
126- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
127119 self . add_args ( args) ;
128- if should_remove_further_specializable {
129- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
130- }
131120 }
132121
133122 & ty:: Closure ( _, args) => {
134123 let args = args. as_closure ( ) ;
135- let should_remove_further_specializable =
136- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
137124 self . add_args ( args. parent_args ( ) ) ;
138- if should_remove_further_specializable {
139- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
140- }
141125
142126 self . add_ty ( args. sig_as_fn_ptr_ty ( ) ) ;
143127 self . add_ty ( args. kind_ty ( ) ) ;
@@ -146,12 +130,7 @@ impl FlagComputation {
146130
147131 & ty:: CoroutineClosure ( _, args) => {
148132 let args = args. as_coroutine_closure ( ) ;
149- let should_remove_further_specializable =
150- !self . flags . contains ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
151133 self . add_args ( args. parent_args ( ) ) ;
152- if should_remove_further_specializable {
153- self . flags -= TypeFlags :: STILL_FURTHER_SPECIALIZABLE ;
154- }
155134
156135 self . add_ty ( args. kind_ty ( ) ) ;
157136 self . add_ty ( args. signature_parts_ty ( ) ) ;
@@ -167,21 +146,17 @@ impl FlagComputation {
167146
168147 & ty:: Placeholder ( ..) => {
169148 self . add_flags ( TypeFlags :: HAS_TY_PLACEHOLDER ) ;
170- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
171149 }
172150
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+ }
179155
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 )
183158 }
184- }
159+ } ,
185160
186161 & ty:: Adt ( _, args) => {
187162 self . add_args ( args) ;
@@ -358,24 +333,19 @@ impl FlagComputation {
358333 self . add_args ( uv. args ) ;
359334 self . add_flags ( TypeFlags :: HAS_CT_PROJECTION ) ;
360335 }
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+ } ,
368340 ty:: ConstKind :: Bound ( debruijn, _) => {
369341 self . add_bound_var ( debruijn) ;
370342 self . add_flags ( TypeFlags :: HAS_CT_BOUND ) ;
371343 }
372344 ty:: ConstKind :: Param ( _) => {
373345 self . add_flags ( TypeFlags :: HAS_CT_PARAM ) ;
374- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
375346 }
376347 ty:: ConstKind :: Placeholder ( _) => {
377348 self . add_flags ( TypeFlags :: HAS_CT_PLACEHOLDER ) ;
378- self . add_flags ( TypeFlags :: STILL_FURTHER_SPECIALIZABLE ) ;
379349 }
380350 ty:: ConstKind :: Value ( cv) => self . add_ty ( cv. ty ) ,
381351 ty:: ConstKind :: Expr ( e) => self . add_args ( e. args ( ) ) ,
0 commit comments