File tree 4 files changed +45
-3
lines changed
compiler/rustc_resolve/src
src/test/ui/const-generics/defaults
4 files changed +45
-3
lines changed Original file line number Diff line number Diff line change @@ -450,7 +450,7 @@ impl<'a> Resolver<'a> {
450
450
err. span_label ( shadowed_binding_span, msg) ;
451
451
err
452
452
}
453
- ResolutionError :: ForwardDeclaredTyParam => {
453
+ ResolutionError :: ForwardDeclaredGenericParam => {
454
454
let mut err = struct_span_err ! (
455
455
self . session,
456
456
span,
Original file line number Diff line number Diff line change @@ -242,7 +242,7 @@ enum ResolutionError<'a> {
242
242
shadowed_binding_span : Span ,
243
243
} ,
244
244
/// Error E0128: generic parameters with a default cannot use forward-declared identifiers.
245
- ForwardDeclaredTyParam , // FIXME(const_generics_defaults)
245
+ ForwardDeclaredGenericParam ,
246
246
/// ERROR E0770: the type of const parameters must not depend on other generic parameters.
247
247
ParamInTyOfConstParam ( Symbol ) ,
248
248
/// generic parameters must not be used inside const evaluations.
@@ -2608,7 +2608,7 @@ impl<'a> Resolver<'a> {
2608
2608
let res_error = if rib_ident. name == kw:: SelfUpper {
2609
2609
ResolutionError :: SelfInTyParamDefault
2610
2610
} else {
2611
- ResolutionError :: ForwardDeclaredTyParam
2611
+ ResolutionError :: ForwardDeclaredGenericParam
2612
2612
} ;
2613
2613
self . report_error ( span, res_error) ;
2614
2614
}
Original file line number Diff line number Diff line change
1
+ #![ feature( const_generics_defaults) ]
2
+
3
+ struct Foo < const N : usize = M , const M : usize = 10 > ;
4
+ //~^ ERROR generic parameters with a default cannot use forward declared identifiers
5
+
6
+ enum Bar < const N : usize = M , const M : usize = 10 > { }
7
+ //~^ ERROR generic parameters with a default cannot use forward declared identifiers
8
+
9
+ struct Foo2 < const N : usize = N > ;
10
+ //~^ ERROR generic parameters with a default cannot use forward declared identifiers
11
+
12
+ enum Bar2 < const N : usize = N > { }
13
+ //~^ ERROR generic parameters with a default cannot use forward declared identifiers
14
+
15
+ fn main ( ) { }
Original file line number Diff line number Diff line change
1
+ error[E0128]: generic parameters with a default cannot use forward declared identifiers
2
+ --> $DIR/forward-declared.rs:3:29
3
+ |
4
+ LL | struct Foo<const N: usize = M, const M: usize = 10>;
5
+ | ^ defaulted generic parameters cannot be forward declared
6
+
7
+ error[E0128]: generic parameters with a default cannot use forward declared identifiers
8
+ --> $DIR/forward-declared.rs:6:27
9
+ |
10
+ LL | enum Bar<const N: usize = M, const M: usize = 10> {}
11
+ | ^ defaulted generic parameters cannot be forward declared
12
+
13
+ error[E0128]: generic parameters with a default cannot use forward declared identifiers
14
+ --> $DIR/forward-declared.rs:9:30
15
+ |
16
+ LL | struct Foo2<const N: usize = N>;
17
+ | ^ defaulted generic parameters cannot be forward declared
18
+
19
+ error[E0128]: generic parameters with a default cannot use forward declared identifiers
20
+ --> $DIR/forward-declared.rs:12:28
21
+ |
22
+ LL | enum Bar2<const N: usize = N> {}
23
+ | ^ defaulted generic parameters cannot be forward declared
24
+
25
+ error: aborting due to 4 previous errors
26
+
27
+ For more information about this error, try `rustc --explain E0128`.
You can’t perform that action at this time.
0 commit comments