File tree 2 files changed +15
-12
lines changed
compiler/rustc_middle/src/ty
tests/ui/const-generics/generic_const_exprs
2 files changed +15
-12
lines changed Original file line number Diff line number Diff line change @@ -63,7 +63,8 @@ impl<'tcx> TyCtxt<'tcx> {
63
63
Err ( e) => self . tcx . const_error_with_guaranteed ( c. ty ( ) , e) ,
64
64
Ok ( Some ( bac) ) => {
65
65
let substs = self . tcx . erase_regions ( uv. substs ) ;
66
- bac. subst ( self . tcx , substs)
66
+ let bac = bac. subst ( self . tcx , substs) ;
67
+ return bac. fold_with ( self ) ;
67
68
}
68
69
Ok ( None ) => c,
69
70
} ,
Original file line number Diff line number Diff line change 2
2
#![ feature( generic_const_exprs) ]
3
3
#![ allow( incomplete_features, unused_parens, unused_braces) ]
4
4
5
- fn zero_init < const N : usize > ( ) -> Substs1 < { ( N ) } >
5
+ fn zero_init < const N : usize > ( ) -> Substs1 < { { N } } >
6
6
where
7
- [ u8 ; { ( N ) } ] : ,
7
+ [ u8 ; { { N } } ] : ,
8
8
{
9
- Substs1 ( [ 0 ; { ( N ) } ] )
9
+ Substs1 ( [ 0 ; { { N } } ] )
10
10
}
11
11
12
- struct Substs1 < const N : usize > ( [ u8 ; { ( N ) } ] )
12
+ struct Substs1 < const N : usize > ( [ u8 ; { { N } } ] )
13
13
where
14
- [ ( ) ; { ( N ) } ] : ;
14
+ [ ( ) ; { { N } } ] : ;
15
15
16
- fn substs2 < const M : usize > ( ) -> Substs1 < { ( M ) } > {
17
- zero_init :: < { ( M ) } > ( )
16
+ fn substs2 < const M : usize > ( ) -> Substs1 < { { M } } > {
17
+ zero_init :: < { { M } } > ( )
18
18
}
19
19
20
- fn substs3 < const L : usize > ( ) -> Substs1 < { ( L ) } > {
21
- substs2 :: < { ( L ) } > ( )
20
+ fn substs3 < const L : usize > ( ) -> Substs1 < { { L } } > {
21
+ substs2 :: < { { L } } > ( )
22
22
}
23
23
24
24
fn main ( ) {
25
25
assert_eq ! ( substs3:: <2 >( ) . 0 , [ 0 ; 2 ] ) ;
26
26
}
27
27
28
- // Test that the implicit ``{ (L) }`` bound on ``substs3`` satisfies the
29
- // ``{ (N) }`` bound on ``Substs1``
28
+ // Test that the implicit ``{{ L }}`` bound on ``substs3`` satisfies the
29
+ // ``{{ N }}`` bound on ``Substs1``
30
+ // FIXME(generic_const_exprs): come up with a less brittle test for this using assoc consts
31
+ // once normalization is implemented for them.
You can’t perform that action at this time.
0 commit comments