2021-01-16 18:05:51 +00:00
error[E0764]: mutable references are not allowed in the final value of constants
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:14:21
2021-01-03 18:46:20 +00:00
|
LL | const B: *mut i32 = &mut 4;
| ^^^^^^
2021-01-23 11:58:58 +00:00
error[E0716]: temporary value dropped while borrowed
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:20:40
2021-01-23 11:58:58 +00:00
|
LL | const B3: Option<&mut i32> = Some(&mut 42);
| ----------^^-
| | | |
| | | temporary value is freed at the end of this statement
2022-10-20 16:43:27 +01:00
| | creates a temporary value which is freed while still in use
2021-01-23 11:58:58 +00:00
| using this value as a constant requires that borrow lasts for `'static`
error[E0716]: temporary value dropped while borrowed
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:23:42
2021-01-23 11:58:58 +00:00
|
2021-01-23 12:35:45 +00:00
LL | const B4: Option<&mut i32> = helper(&mut 42);
| ------------^^-
| | | |
| | | temporary value is freed at the end of this statement
2022-10-20 16:43:27 +01:00
| | creates a temporary value which is freed while still in use
2021-01-23 11:58:58 +00:00
| using this value as a constant requires that borrow lasts for `'static`
2024-09-15 13:11:05 +02:00
error[E0080]: it is undefined behavior to use this value
--> $DIR/mut_ref_in_final.rs:26:1
|
LL | const IMMUT_MUT_REF: &mut u16 = unsafe { mem::transmute(&13) };
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ constructing invalid value: encountered mutable reference or box pointing to read-only memory
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.
= note: the raw bytes of the constant (size: $SIZE, align: $ALIGN) {
HEX_DUMP
}
2021-01-23 11:58:58 +00:00
error[E0716]: temporary value dropped while borrowed
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:50:65
2021-01-23 11:58:58 +00:00
|
LL | const FOO: NotAMutex<&mut i32> = NotAMutex(UnsafeCell::new(&mut 42));
| -------------------------------^^--
| | | |
| | | temporary value is freed at the end of this statement
2022-10-20 16:43:27 +01:00
| | creates a temporary value which is freed while still in use
2021-01-23 11:58:58 +00:00
| using this value as a constant requires that borrow lasts for `'static`
error[E0716]: temporary value dropped while borrowed
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:53:67
2021-01-23 11:58:58 +00:00
|
LL | static FOO2: NotAMutex<&mut i32> = NotAMutex(UnsafeCell::new(&mut 42));
| -------------------------------^^--
| | | |
| | | temporary value is freed at the end of this statement
2022-10-20 16:43:27 +01:00
| | creates a temporary value which is freed while still in use
2021-01-23 11:58:58 +00:00
| using this value as a static requires that borrow lasts for `'static`
error[E0716]: temporary value dropped while borrowed
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:56:71
2021-01-23 11:58:58 +00:00
|
LL | static mut FOO3: NotAMutex<&mut i32> = NotAMutex(UnsafeCell::new(&mut 42));
| -------------------------------^^--
| | | |
| | | temporary value is freed at the end of this statement
2022-10-20 16:43:27 +01:00
| | creates a temporary value which is freed while still in use
2021-01-23 11:58:58 +00:00
| using this value as a static requires that borrow lasts for `'static`
2023-12-16 16:24:25 +01:00
error[E0764]: mutable references are not allowed in the final value of statics
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:69:53
2023-12-16 16:24:25 +01:00
|
LL | static RAW_MUT_CAST_S: SyncPtr<i32> = SyncPtr { x : &mut 42 as *mut _ as *const _ };
| ^^^^^^^
error[E0764]: mutable references are not allowed in the final value of statics
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:71:54
2023-12-16 16:24:25 +01:00
|
LL | static RAW_MUT_COERCE_S: SyncPtr<i32> = SyncPtr { x: &mut 0 };
| ^^^^^^
error[E0764]: mutable references are not allowed in the final value of constants
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:73:52
2023-12-16 16:24:25 +01:00
|
LL | const RAW_MUT_CAST_C: SyncPtr<i32> = SyncPtr { x : &mut 42 as *mut _ as *const _ };
| ^^^^^^^
error[E0764]: mutable references are not allowed in the final value of constants
2024-09-15 13:11:05 +02:00
--> $DIR/mut_ref_in_final.rs:75:53
2023-12-16 16:24:25 +01:00
|
LL | const RAW_MUT_COERCE_C: SyncPtr<i32> = SyncPtr { x: &mut 0 };
| ^^^^^^
2024-09-15 13:11:05 +02:00
error: aborting due to 11 previous errors
2021-01-03 18:46:20 +00:00
2024-09-15 13:11:05 +02:00
Some errors have detailed explanations: E0080, E0716, E0764.
For more information about an error, try `rustc --explain E0080`.