@@ -120,16 +120,27 @@ where
120
120
{
121
121
fn try_fold_with < F : FallibleTypeFolder < I > > ( self , folder : & mut F ) -> Result < Self , F :: Error > {
122
122
Ok ( match self {
123
- ClauseKind :: Trait ( p) => ClauseKind :: Trait ( p. try_fold_with ( folder) ?) ,
124
- ClauseKind :: RegionOutlives ( p) => ClauseKind :: RegionOutlives ( p. try_fold_with ( folder) ?) ,
125
- ClauseKind :: TypeOutlives ( p) => ClauseKind :: TypeOutlives ( p. try_fold_with ( folder) ?) ,
126
- ClauseKind :: Projection ( p) => ClauseKind :: Projection ( p. try_fold_with ( folder) ?) ,
127
- ClauseKind :: ConstArgHasType ( c, t) => {
128
- ClauseKind :: ConstArgHasType ( c. try_fold_with ( folder) ?, t. try_fold_with ( folder) ?)
123
+ ClauseKind :: Trait ( p) => {
124
+ ClauseKind :: Trait ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
125
+ }
126
+ ClauseKind :: RegionOutlives ( p) => {
127
+ ClauseKind :: RegionOutlives ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
128
+ }
129
+ ClauseKind :: TypeOutlives ( p) => {
130
+ ClauseKind :: TypeOutlives ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
131
+ }
132
+ ClauseKind :: Projection ( p) => {
133
+ ClauseKind :: Projection ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
134
+ }
135
+ ClauseKind :: ConstArgHasType ( c, t) => ClauseKind :: ConstArgHasType (
136
+ noop_traversal_if_boring ! ( c. try_fold_with( folder) ) ?,
137
+ noop_traversal_if_boring ! ( t. try_fold_with( folder) ) ?,
138
+ ) ,
139
+ ClauseKind :: WellFormed ( p) => {
140
+ ClauseKind :: WellFormed ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
129
141
}
130
- ClauseKind :: WellFormed ( p) => ClauseKind :: WellFormed ( p. try_fold_with ( folder) ?) ,
131
142
ClauseKind :: ConstEvaluatable ( p) => {
132
- ClauseKind :: ConstEvaluatable ( p. try_fold_with ( folder) ?)
143
+ ClauseKind :: ConstEvaluatable ( noop_traversal_if_boring ! ( p. try_fold_with( folder) ) ?)
133
144
}
134
145
} )
135
146
}
@@ -147,16 +158,26 @@ where
147
158
{
148
159
fn visit_with < V : TypeVisitor < I > > ( & self , visitor : & mut V ) -> ControlFlow < V :: BreakTy > {
149
160
match self {
150
- ClauseKind :: Trait ( p) => p. visit_with ( visitor) ,
151
- ClauseKind :: RegionOutlives ( p) => p. visit_with ( visitor) ,
152
- ClauseKind :: TypeOutlives ( p) => p. visit_with ( visitor) ,
153
- ClauseKind :: Projection ( p) => p. visit_with ( visitor) ,
161
+ ClauseKind :: Trait ( p) => noop_traversal_if_boring ! ( p. visit_with( visitor) ) ,
162
+ ClauseKind :: RegionOutlives ( p) => {
163
+ noop_traversal_if_boring ! ( p. visit_with( visitor) )
164
+ }
165
+ ClauseKind :: TypeOutlives ( p) => {
166
+ noop_traversal_if_boring ! ( p. visit_with( visitor) )
167
+ }
168
+ ClauseKind :: Projection ( p) => {
169
+ noop_traversal_if_boring ! ( p. visit_with( visitor) )
170
+ }
154
171
ClauseKind :: ConstArgHasType ( c, t) => {
155
- c. visit_with ( visitor) ?;
156
- t. visit_with ( visitor)
172
+ noop_traversal_if_boring ! ( c. visit_with( visitor) ) ?;
173
+ noop_traversal_if_boring ! ( t. visit_with( visitor) )
174
+ }
175
+ ClauseKind :: WellFormed ( p) => {
176
+ noop_traversal_if_boring ! ( p. visit_with( visitor) )
177
+ }
178
+ ClauseKind :: ConstEvaluatable ( p) => {
179
+ noop_traversal_if_boring ! ( p. visit_with( visitor) )
157
180
}
158
- ClauseKind :: WellFormed ( p) => p. visit_with ( visitor) ,
159
- ClauseKind :: ConstEvaluatable ( p) => p. visit_with ( visitor) ,
160
181
}
161
182
}
162
183
}
@@ -360,23 +381,32 @@ where
360
381
{
361
382
fn try_fold_with < F : FallibleTypeFolder < I > > ( self , folder : & mut F ) -> Result < Self , F :: Error > {
362
383
Ok ( match self {
363
- PredicateKind :: Clause ( c) => PredicateKind :: Clause ( c. try_fold_with ( folder) ?) ,
364
- PredicateKind :: ObjectSafe ( d) => PredicateKind :: ObjectSafe ( d. try_fold_with ( folder) ?) ,
384
+ PredicateKind :: Clause ( c) => {
385
+ PredicateKind :: Clause ( noop_traversal_if_boring ! ( c. try_fold_with( folder) ) ?)
386
+ }
387
+ PredicateKind :: ObjectSafe ( d) => {
388
+ PredicateKind :: ObjectSafe ( noop_traversal_if_boring ! ( d. try_fold_with( folder) ) ?)
389
+ }
365
390
PredicateKind :: ClosureKind ( d, g, k) => PredicateKind :: ClosureKind (
366
- d. try_fold_with ( folder) ?,
367
- g. try_fold_with ( folder) ?,
368
- k. try_fold_with ( folder) ?,
391
+ noop_traversal_if_boring ! ( d. try_fold_with( folder) ) ?,
392
+ noop_traversal_if_boring ! ( g. try_fold_with( folder) ) ?,
393
+ noop_traversal_if_boring ! ( k. try_fold_with( folder) ) ?,
369
394
) ,
370
- PredicateKind :: Subtype ( s) => PredicateKind :: Subtype ( s. try_fold_with ( folder) ?) ,
371
- PredicateKind :: Coerce ( s) => PredicateKind :: Coerce ( s. try_fold_with ( folder) ?) ,
372
- PredicateKind :: ConstEquate ( a, b) => {
373
- PredicateKind :: ConstEquate ( a. try_fold_with ( folder) ?, b. try_fold_with ( folder) ?)
395
+ PredicateKind :: Subtype ( s) => {
396
+ PredicateKind :: Subtype ( noop_traversal_if_boring ! ( s. try_fold_with( folder) ) ?)
374
397
}
398
+ PredicateKind :: Coerce ( s) => {
399
+ PredicateKind :: Coerce ( noop_traversal_if_boring ! ( s. try_fold_with( folder) ) ?)
400
+ }
401
+ PredicateKind :: ConstEquate ( a, b) => PredicateKind :: ConstEquate (
402
+ noop_traversal_if_boring ! ( a. try_fold_with( folder) ) ?,
403
+ noop_traversal_if_boring ! ( b. try_fold_with( folder) ) ?,
404
+ ) ,
375
405
PredicateKind :: Ambiguous => PredicateKind :: Ambiguous ,
376
406
PredicateKind :: AliasRelate ( a, b, d) => PredicateKind :: AliasRelate (
377
- a. try_fold_with ( folder) ?,
378
- b. try_fold_with ( folder) ?,
379
- d. try_fold_with ( folder) ?,
407
+ noop_traversal_if_boring ! ( a. try_fold_with( folder) ) ?,
408
+ noop_traversal_if_boring ! ( b. try_fold_with( folder) ) ?,
409
+ noop_traversal_if_boring ! ( d. try_fold_with( folder) ) ?,
380
410
) ,
381
411
} )
382
412
}
@@ -395,24 +425,28 @@ where
395
425
{
396
426
fn visit_with < V : TypeVisitor < I > > ( & self , visitor : & mut V ) -> ControlFlow < V :: BreakTy > {
397
427
match self {
398
- PredicateKind :: Clause ( p) => p. visit_with ( visitor) ,
399
- PredicateKind :: ObjectSafe ( d) => d. visit_with ( visitor) ,
428
+ PredicateKind :: Clause ( p) => noop_traversal_if_boring ! ( p. visit_with( visitor) ) ,
429
+ PredicateKind :: ObjectSafe ( d) => {
430
+ noop_traversal_if_boring ! ( d. visit_with( visitor) )
431
+ }
400
432
PredicateKind :: ClosureKind ( d, g, k) => {
401
- d. visit_with ( visitor) ?;
402
- g. visit_with ( visitor) ?;
403
- k. visit_with ( visitor)
433
+ noop_traversal_if_boring ! ( d. visit_with( visitor) ) ?;
434
+ noop_traversal_if_boring ! ( g. visit_with( visitor) ) ?;
435
+ noop_traversal_if_boring ! ( k. visit_with( visitor) )
436
+ }
437
+ PredicateKind :: Subtype ( s) => {
438
+ noop_traversal_if_boring ! ( s. visit_with( visitor) )
404
439
}
405
- PredicateKind :: Subtype ( s) => s. visit_with ( visitor) ,
406
- PredicateKind :: Coerce ( s) => s. visit_with ( visitor) ,
440
+ PredicateKind :: Coerce ( s) => noop_traversal_if_boring ! ( s. visit_with( visitor) ) ,
407
441
PredicateKind :: ConstEquate ( a, b) => {
408
- a. visit_with ( visitor) ?;
409
- b. visit_with ( visitor)
442
+ noop_traversal_if_boring ! ( a. visit_with( visitor) ) ?;
443
+ noop_traversal_if_boring ! ( b. visit_with( visitor) )
410
444
}
411
445
PredicateKind :: Ambiguous => ControlFlow :: Continue ( ( ) ) ,
412
446
PredicateKind :: AliasRelate ( a, b, d) => {
413
- a. visit_with ( visitor) ?;
414
- b. visit_with ( visitor) ?;
415
- d. visit_with ( visitor)
447
+ noop_traversal_if_boring ! ( a. visit_with( visitor) ) ?;
448
+ noop_traversal_if_boring ! ( b. visit_with( visitor) ) ?;
449
+ noop_traversal_if_boring ! ( d. visit_with( visitor) )
416
450
}
417
451
}
418
452
}
0 commit comments