@@ -91,13 +91,20 @@ enum PatBoundCtx {
91
91
}
92
92
93
93
/// Does this the item (from the item rib scope) allow generic parameters?
94
- #[ derive( Copy , Clone , Debug , Eq , PartialEq ) ]
94
+ #[ derive( Copy , Clone , Debug ) ]
95
95
pub ( crate ) enum HasGenericParams {
96
96
Yes ,
97
97
No ,
98
98
}
99
99
100
- impl HasGenericParams {
100
+ /// May this constant have generics?
101
+ #[ derive( Copy , Clone , Debug , Eq , PartialEq ) ]
102
+ pub ( crate ) enum ConstantHasGenerics {
103
+ Yes ,
104
+ No ,
105
+ }
106
+
107
+ impl ConstantHasGenerics {
101
108
fn force_yes_if ( self , b : bool ) -> Self {
102
109
if b { Self :: Yes } else { self }
103
110
}
@@ -136,7 +143,7 @@ pub(crate) enum RibKind<'a> {
136
143
///
137
144
/// The item may reference generic parameters in trivial constant expressions.
138
145
/// All other constants aren't allowed to use generic params at all.
139
- ConstantItemRibKind ( HasGenericParams , Option < ( Ident , ConstantItemKind ) > ) ,
146
+ ConstantItemRibKind ( ConstantHasGenerics , Option < ( Ident , ConstantItemKind ) > ) ,
140
147
141
148
/// We passed through a module.
142
149
ModuleRibKind ( Module < ' a > ) ,
@@ -995,7 +1002,7 @@ impl<'a: 'ast, 'ast> Visitor<'ast> for LateResolutionVisitor<'a, '_, 'ast> {
995
1002
// non-trivial constants this is doesn't matter.
996
1003
self . with_constant_rib (
997
1004
IsRepeatExpr :: No ,
998
- HasGenericParams :: Yes ,
1005
+ ConstantHasGenerics :: Yes ,
999
1006
None ,
1000
1007
|this| {
1001
1008
this. smart_resolve_path (
@@ -2251,7 +2258,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2251
2258
// so it doesn't matter whether this is a trivial constant.
2252
2259
this. with_constant_rib (
2253
2260
IsRepeatExpr :: No ,
2254
- HasGenericParams :: Yes ,
2261
+ ConstantHasGenerics :: Yes ,
2255
2262
Some ( ( item. ident , constant_item_kind) ) ,
2256
2263
|this| this. visit_expr ( expr) ,
2257
2264
) ;
@@ -2450,7 +2457,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2450
2457
fn with_constant_rib (
2451
2458
& mut self ,
2452
2459
is_repeat : IsRepeatExpr ,
2453
- may_use_generics : HasGenericParams ,
2460
+ may_use_generics : ConstantHasGenerics ,
2454
2461
item : Option < ( Ident , ConstantItemKind ) > ,
2455
2462
f : impl FnOnce ( & mut Self ) ,
2456
2463
) {
@@ -2517,7 +2524,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2517
2524
|this| {
2518
2525
this. with_constant_rib (
2519
2526
IsRepeatExpr :: No ,
2520
- HasGenericParams :: Yes ,
2527
+ ConstantHasGenerics :: Yes ,
2521
2528
None ,
2522
2529
|this| this. visit_expr ( expr) ,
2523
2530
)
@@ -2689,7 +2696,7 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2689
2696
self . with_lifetime_rib ( LifetimeRibKind :: Elided ( LifetimeRes :: Infer ) , |this| {
2690
2697
this. with_constant_rib (
2691
2698
IsRepeatExpr :: No ,
2692
- HasGenericParams :: Yes ,
2699
+ ConstantHasGenerics :: Yes ,
2693
2700
None ,
2694
2701
|this| this. visit_expr ( expr) ,
2695
2702
)
@@ -3696,9 +3703,9 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
3696
3703
self . with_constant_rib (
3697
3704
is_repeat,
3698
3705
if constant. value . is_potential_trivial_const_param ( ) {
3699
- HasGenericParams :: Yes
3706
+ ConstantHasGenerics :: Yes
3700
3707
} else {
3701
- HasGenericParams :: No
3708
+ ConstantHasGenerics :: No
3702
3709
} ,
3703
3710
None ,
3704
3711
|this| visit:: walk_anon_const ( this, constant) ,
@@ -3707,8 +3714,8 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
3707
3714
3708
3715
fn resolve_inline_const ( & mut self , constant : & ' ast AnonConst ) {
3709
3716
debug ! ( "resolve_anon_const {constant:?}" ) ;
3710
- self . with_constant_rib ( IsRepeatExpr :: No , HasGenericParams :: Yes , None , |this| {
3711
- visit:: walk_anon_const ( this, constant) ;
3717
+ self . with_constant_rib ( IsRepeatExpr :: No , ConstantHasGenerics :: Yes , None , |this| {
3718
+ visit:: walk_anon_const ( this, constant)
3712
3719
} ) ;
3713
3720
}
3714
3721
@@ -3814,9 +3821,9 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
3814
3821
self . with_constant_rib (
3815
3822
IsRepeatExpr :: No ,
3816
3823
if argument. is_potential_trivial_const_param ( ) {
3817
- HasGenericParams :: Yes
3824
+ ConstantHasGenerics :: Yes
3818
3825
} else {
3819
- HasGenericParams :: No
3826
+ ConstantHasGenerics :: No
3820
3827
} ,
3821
3828
None ,
3822
3829
|this| {
0 commit comments