Skip to content

Commit 8b6e9ca

Browse files
authored
Rollup merge of rust-lang#118486 - RalfJung:add-feature, r=compiler-errors
generic_const_exprs: suggest to add the feature, not use it Usually our missing feature messages look something like ``` = help: add `#![feature(inline_const)]` to the crate attributes to enable ``` However `generic_const_exprs` used a different verb. That's inconsistent and it also means playground won't add that nice hyperlink to add the feature automatically. So let's use the same verb as everywhere else.
2 parents a030add + 1dbfe17 commit 8b6e9ca

34 files changed

+74
-74
lines changed

compiler/rustc_resolve/messages.ftl

+1-1
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ resolve_param_in_non_trivial_anon_const =
200200
.label = cannot perform const operation using `{$name}`
201201
202202
resolve_param_in_non_trivial_anon_const_help =
203-
use `#![feature(generic_const_exprs)]` to allow generic const expressions
203+
add `#![feature(generic_const_exprs)]` to allow generic const expressions
204204
205205
resolve_param_in_ty_of_const_param =
206206
the type of const parameters must not depend on other generic parameters

tests/ui/associated-consts/associated-const-type-parameter-arrays.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | let _array: [u32; <A as Foo>::Y];
55
| ^ cannot perform const operation using `A`
66
|
77
= note: type parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: aborting due to 1 previous error
1111

tests/ui/associated-item/associated-item-duplicate-bounds.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | links: [u32; A::LINKS], // Shouldn't suggest bounds already there.
55
| ^^^^^^^^ cannot perform const operation using `A`
66
|
77
= note: type parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: aborting due to 1 previous error
1111

tests/ui/const-generics/const-arg-in-const-arg.min.stderr

+23-23
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | let _: [u8; foo::<T>()];
55
| ^ cannot perform const operation using `T`
66
|
77
= note: type parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: generic parameters may not be used in const operations
1111
--> $DIR/const-arg-in-const-arg.rs:16:23
@@ -14,7 +14,7 @@ LL | let _: [u8; bar::<N>()];
1414
| ^ cannot perform const operation using `N`
1515
|
1616
= help: const parameters may only be used as standalone arguments, i.e. `N`
17-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
17+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
1818

1919
error: generic parameters may not be used in const operations
2020
--> $DIR/const-arg-in-const-arg.rs:18:23
@@ -23,7 +23,7 @@ LL | let _: [u8; faz::<'a>(&())];
2323
| ^^ cannot perform const operation using `'a`
2424
|
2525
= note: lifetime parameters may not be used in const expressions
26-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
26+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
2727

2828
error: generic parameters may not be used in const operations
2929
--> $DIR/const-arg-in-const-arg.rs:20:23
@@ -32,7 +32,7 @@ LL | let _: [u8; baz::<'a>(&())];
3232
| ^^ cannot perform const operation using `'a`
3333
|
3434
= note: lifetime parameters may not be used in const expressions
35-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
35+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
3636

3737
error: generic parameters may not be used in const operations
3838
--> $DIR/const-arg-in-const-arg.rs:21:23
@@ -41,7 +41,7 @@ LL | let _: [u8; faz::<'b>(&())];
4141
| ^^ cannot perform const operation using `'b`
4242
|
4343
= note: lifetime parameters may not be used in const expressions
44-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
44+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
4545

4646
error: generic parameters may not be used in const operations
4747
--> $DIR/const-arg-in-const-arg.rs:23:23
@@ -50,7 +50,7 @@ LL | let _: [u8; baz::<'b>(&())];
5050
| ^^ cannot perform const operation using `'b`
5151
|
5252
= note: lifetime parameters may not be used in const expressions
53-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
53+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
5454

5555
error: generic parameters may not be used in const operations
5656
--> $DIR/const-arg-in-const-arg.rs:26:23
@@ -59,7 +59,7 @@ LL | let _ = [0; bar::<N>()];
5959
| ^ cannot perform const operation using `N`
6060
|
6161
= help: const parameters may only be used as standalone arguments, i.e. `N`
62-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
62+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
6363

6464
error: generic parameters may not be used in const operations
6565
--> $DIR/const-arg-in-const-arg.rs:28:23
@@ -68,7 +68,7 @@ LL | let _ = [0; faz::<'a>(&())];
6868
| ^^ cannot perform const operation using `'a`
6969
|
7070
= note: lifetime parameters may not be used in const expressions
71-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
71+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
7272

7373
error: generic parameters may not be used in const operations
7474
--> $DIR/const-arg-in-const-arg.rs:30:23
@@ -77,7 +77,7 @@ LL | let _ = [0; baz::<'a>(&())];
7777
| ^^ cannot perform const operation using `'a`
7878
|
7979
= note: lifetime parameters may not be used in const expressions
80-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
80+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
8181

8282
error: generic parameters may not be used in const operations
8383
--> $DIR/const-arg-in-const-arg.rs:31:23
@@ -86,7 +86,7 @@ LL | let _ = [0; faz::<'b>(&())];
8686
| ^^ cannot perform const operation using `'b`
8787
|
8888
= note: lifetime parameters may not be used in const expressions
89-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
89+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
9090

9191
error: generic parameters may not be used in const operations
9292
--> $DIR/const-arg-in-const-arg.rs:33:23
@@ -95,7 +95,7 @@ LL | let _ = [0; baz::<'b>(&())];
9595
| ^^ cannot perform const operation using `'b`
9696
|
9797
= note: lifetime parameters may not be used in const expressions
98-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
98+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
9999

100100
error: generic parameters may not be used in const operations
101101
--> $DIR/const-arg-in-const-arg.rs:34:24
@@ -104,7 +104,7 @@ LL | let _: Foo<{ foo::<T>() }>;
104104
| ^ cannot perform const operation using `T`
105105
|
106106
= note: type parameters may not be used in const expressions
107-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
107+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
108108

109109
error: generic parameters may not be used in const operations
110110
--> $DIR/const-arg-in-const-arg.rs:35:24
@@ -113,7 +113,7 @@ LL | let _: Foo<{ bar::<N>() }>;
113113
| ^ cannot perform const operation using `N`
114114
|
115115
= help: const parameters may only be used as standalone arguments, i.e. `N`
116-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
116+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
117117

118118
error: generic parameters may not be used in const operations
119119
--> $DIR/const-arg-in-const-arg.rs:37:24
@@ -122,7 +122,7 @@ LL | let _: Foo<{ faz::<'a>(&()) }>;
122122
| ^^ cannot perform const operation using `'a`
123123
|
124124
= note: lifetime parameters may not be used in const expressions
125-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
125+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
126126

127127
error: generic parameters may not be used in const operations
128128
--> $DIR/const-arg-in-const-arg.rs:39:24
@@ -131,7 +131,7 @@ LL | let _: Foo<{ baz::<'a>(&()) }>;
131131
| ^^ cannot perform const operation using `'a`
132132
|
133133
= note: lifetime parameters may not be used in const expressions
134-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
134+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
135135

136136
error: generic parameters may not be used in const operations
137137
--> $DIR/const-arg-in-const-arg.rs:40:24
@@ -140,7 +140,7 @@ LL | let _: Foo<{ faz::<'b>(&()) }>;
140140
| ^^ cannot perform const operation using `'b`
141141
|
142142
= note: lifetime parameters may not be used in const expressions
143-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
143+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
144144

145145
error: generic parameters may not be used in const operations
146146
--> $DIR/const-arg-in-const-arg.rs:42:24
@@ -149,7 +149,7 @@ LL | let _: Foo<{ baz::<'b>(&()) }>;
149149
| ^^ cannot perform const operation using `'b`
150150
|
151151
= note: lifetime parameters may not be used in const expressions
152-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
152+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
153153

154154
error: generic parameters may not be used in const operations
155155
--> $DIR/const-arg-in-const-arg.rs:43:27
@@ -158,7 +158,7 @@ LL | let _ = Foo::<{ foo::<T>() }>;
158158
| ^ cannot perform const operation using `T`
159159
|
160160
= note: type parameters may not be used in const expressions
161-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
161+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
162162

163163
error: generic parameters may not be used in const operations
164164
--> $DIR/const-arg-in-const-arg.rs:44:27
@@ -167,7 +167,7 @@ LL | let _ = Foo::<{ bar::<N>() }>;
167167
| ^ cannot perform const operation using `N`
168168
|
169169
= help: const parameters may only be used as standalone arguments, i.e. `N`
170-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
170+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
171171

172172
error: generic parameters may not be used in const operations
173173
--> $DIR/const-arg-in-const-arg.rs:46:27
@@ -176,7 +176,7 @@ LL | let _ = Foo::<{ faz::<'a>(&()) }>;
176176
| ^^ cannot perform const operation using `'a`
177177
|
178178
= note: lifetime parameters may not be used in const expressions
179-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
179+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
180180

181181
error: generic parameters may not be used in const operations
182182
--> $DIR/const-arg-in-const-arg.rs:48:27
@@ -185,7 +185,7 @@ LL | let _ = Foo::<{ baz::<'a>(&()) }>;
185185
| ^^ cannot perform const operation using `'a`
186186
|
187187
= note: lifetime parameters may not be used in const expressions
188-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
188+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
189189

190190
error: generic parameters may not be used in const operations
191191
--> $DIR/const-arg-in-const-arg.rs:49:27
@@ -194,7 +194,7 @@ LL | let _ = Foo::<{ faz::<'b>(&()) }>;
194194
| ^^ cannot perform const operation using `'b`
195195
|
196196
= note: lifetime parameters may not be used in const expressions
197-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
197+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
198198

199199
error: generic parameters may not be used in const operations
200200
--> $DIR/const-arg-in-const-arg.rs:51:27
@@ -203,7 +203,7 @@ LL | let _ = Foo::<{ baz::<'b>(&()) }>;
203203
| ^^ cannot perform const operation using `'b`
204204
|
205205
= note: lifetime parameters may not be used in const expressions
206-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
206+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
207207

208208
error[E0747]: unresolved item provided when a constant was expected
209209
--> $DIR/const-arg-in-const-arg.rs:16:23

tests/ui/const-generics/const-argument-if-length.min.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | pad: [u8; is_zst::<T>()],
55
| ^ cannot perform const operation using `T`
66
|
77
= note: type parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error[E0277]: the size for values of type `T` cannot be known at compilation time
1111
--> $DIR/const-argument-if-length.rs:15:12

tests/ui/const-generics/const-argument-non-static-lifetime.min.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | let _: &'a ();
55
| ^^ cannot perform const operation using `'a`
66
|
77
= note: lifetime parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: aborting due to 1 previous error
1111

tests/ui/const-generics/defaults/complex-generic-default-expr.min.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | struct Foo<const N: usize, const M: usize = { N + 1 }>;
55
| ^ cannot perform const operation using `N`
66
|
77
= help: const parameters may only be used as standalone arguments, i.e. `N`
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: generic parameters may not be used in const operations
1111
--> $DIR/complex-generic-default-expr.rs:9:62
@@ -14,7 +14,7 @@ LL | struct Bar<T, const TYPE_SIZE: usize = { std::mem::size_of::<T>() }>(T);
1414
| ^ cannot perform const operation using `T`
1515
|
1616
= note: type parameters may not be used in const expressions
17-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
17+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
1818

1919
error: aborting due to 2 previous errors
2020

tests/ui/const-generics/early/macro_rules-braces.stderr

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ LL | let _: foo!({{ N }});
2727
| ^ cannot perform const operation using `N`
2828
|
2929
= help: const parameters may only be used as standalone arguments, i.e. `N`
30-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
30+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
3131

3232
error: generic parameters may not be used in const operations
3333
--> $DIR/macro_rules-braces.rs:36:19
@@ -36,7 +36,7 @@ LL | let _: bar!({ N });
3636
| ^ cannot perform const operation using `N`
3737
|
3838
= help: const parameters may only be used as standalone arguments, i.e. `N`
39-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
39+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
4040

4141
error: generic parameters may not be used in const operations
4242
--> $DIR/macro_rules-braces.rs:41:20
@@ -45,7 +45,7 @@ LL | let _: baz!({{ N }});
4545
| ^ cannot perform const operation using `N`
4646
|
4747
= help: const parameters may only be used as standalone arguments, i.e. `N`
48-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
48+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
4949

5050
error: generic parameters may not be used in const operations
5151
--> $DIR/macro_rules-braces.rs:46:19
@@ -54,7 +54,7 @@ LL | let _: biz!({ N });
5454
| ^ cannot perform const operation using `N`
5555
|
5656
= help: const parameters may only be used as standalone arguments, i.e. `N`
57-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
57+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
5858

5959
error: aborting due to 6 previous errors
6060

tests/ui/const-generics/generic_const_exprs/array-size-in-generic-struct-param.min.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | struct ArithArrayLen<const N: usize>([u32; 0 + N]);
55
| ^ cannot perform const operation using `N`
66
|
77
= help: const parameters may only be used as standalone arguments, i.e. `N`
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: generic parameters may not be used in const operations
1111
--> $DIR/array-size-in-generic-struct-param.rs:23:15
@@ -14,7 +14,7 @@ LL | arr: [u8; CFG.arr_size],
1414
| ^^^ cannot perform const operation using `CFG`
1515
|
1616
= help: const parameters may only be used as standalone arguments, i.e. `CFG`
17-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
17+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
1818

1919
error: `Config` is forbidden as the type of a const generic parameter
2020
--> $DIR/array-size-in-generic-struct-param.rs:21:21

tests/ui/const-generics/generic_const_exprs/dependence_lint.full.stderr

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | let _: [u8; size_of::<*mut T>()]; // error on stable, error with gce
55
| ^ cannot perform const operation using `T`
66
|
77
= note: type parameters may not be used in const expressions
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: generic parameters may not be used in const operations
1111
--> $DIR/dependence_lint.rs:21:37
@@ -14,7 +14,7 @@ LL | let _: [u8; if true { size_of::<T>() } else { 3 }]; // error on stable,
1414
| ^ cannot perform const operation using `T`
1515
|
1616
= note: type parameters may not be used in const expressions
17-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
17+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
1818

1919
warning: cannot use constants which depend on generic parameters in types
2020
--> $DIR/dependence_lint.rs:10:9

tests/ui/const-generics/generic_const_exprs/feature-gate-generic_const_exprs.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ LL | type Arr<const N: usize> = [u8; N - 1];
55
| ^ cannot perform const operation using `N`
66
|
77
= help: const parameters may only be used as standalone arguments, i.e. `N`
8-
= help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
8+
= help: add `#![feature(generic_const_exprs)]` to allow generic const expressions
99

1010
error: aborting due to 1 previous error
1111

0 commit comments

Comments
 (0)