mirror of
https://github.com/rust-lang/rust.git
synced 2024-10-31 06:22:00 +00:00
Clarify suggestion for E0013
This commit is contained in:
parent
2d8d559bbe
commit
8ca55641fd
@ -350,16 +350,18 @@ impl NonConstOp for StaticAccess {
|
||||
item.tcx.sess,
|
||||
span,
|
||||
E0013,
|
||||
"{}s cannot refer to statics, use \
|
||||
a constant instead",
|
||||
"{}s cannot refer to statics",
|
||||
item.const_kind()
|
||||
);
|
||||
err.help(
|
||||
"consider extracting the value of the `static` to a `const`, and referring to that",
|
||||
);
|
||||
if item.tcx.sess.teach(&err.get_code().unwrap()) {
|
||||
err.note(
|
||||
"Static and const variables can refer to other const variables. \
|
||||
But a const variable cannot refer to a static variable.",
|
||||
"`static` and `const` variables can refer to other `const` variables. \
|
||||
A `const` variable, however, cannot refer to a `static` variable.",
|
||||
);
|
||||
err.help("To fix this, the value can be extracted as a const and then used.");
|
||||
err.help("To fix this, the value can be extracted to a `const` and then used.");
|
||||
}
|
||||
err.emit();
|
||||
}
|
||||
|
@ -4,17 +4,21 @@ error[E0015]: calls in constant functions are limited to constant functions, tup
|
||||
LL | random()
|
||||
| ^^^^^^^^
|
||||
|
||||
error[E0013]: constant functions cannot refer to statics, use a constant instead
|
||||
error[E0013]: constant functions cannot refer to statics
|
||||
--> $DIR/const-fn-not-safe-for-const.rs:20:5
|
||||
|
|
||||
LL | Y
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0013]: constant functions cannot refer to statics, use a constant instead
|
||||
error[E0013]: constant functions cannot refer to statics
|
||||
--> $DIR/const-fn-not-safe-for-const.rs:25:6
|
||||
|
|
||||
LL | &Y
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -7,17 +7,21 @@ LL | const C1: &'static mut [usize] = &mut [];
|
||||
= note: for more information, see https://github.com/rust-lang/rust/issues/57349
|
||||
= help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
|
||||
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-17718-const-bad-values.rs:5:46
|
||||
|
|
||||
LL | const C2: &'static mut usize = unsafe { &mut S };
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-17718-const-bad-values.rs:5:46
|
||||
|
|
||||
LL | const C2: &'static mut usize = unsafe { &mut S };
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0658]: references in constants may only refer to immutable values
|
||||
--> $DIR/issue-17718-const-bad-values.rs:5:41
|
||||
|
@ -1,20 +1,26 @@
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-17718-references.rs:9:29
|
||||
|
|
||||
LL | const T2: &'static usize = &S;
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-17718-references.rs:14:19
|
||||
|
|
||||
LL | const T6: usize = S;
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-17718-references.rs:19:33
|
||||
|
|
||||
LL | const T10: Struct = Struct { a: S };
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
pub fn main() {
|
||||
const z: &'static isize = {
|
||||
static p: isize = 3;
|
||||
&p
|
||||
//~^ ERROR constants cannot refer to statics, use a constant instead
|
||||
&p //~ ERROR constants cannot refer to statics
|
||||
};
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-18118-2.rs:4:10
|
||||
|
|
||||
LL | &p
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
|
@ -1,8 +1,10 @@
|
||||
error[E0013]: constants cannot refer to statics, use a constant instead
|
||||
error[E0013]: constants cannot refer to statics
|
||||
--> $DIR/issue-52060.rs:4:26
|
||||
|
|
||||
LL | static B: [u32; 1] = [0; A.len()];
|
||||
| ^
|
||||
|
|
||||
= help: consider extracting the value of the `static` to a `const`, and referring to that
|
||||
|
||||
error[E0080]: evaluation of constant value failed
|
||||
--> $DIR/issue-52060.rs:4:26
|
||||
|
Loading…
Reference in New Issue
Block a user