mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 00:34:06 +00:00
c678acd3a2
Previously, when borrowck failed it would taint all promoteds within the MIR body. An attempt to evaluated the promoteds would subsequently fail with spurious "note: erroneous constant used". For example: ```console ... note: erroneous constant used --> tests/ui/borrowck/tainted-promoteds.rs:7:9 | 7 | a = &0 * &1 * &2 * &3; | ^^ note: erroneous constant used --> tests/ui/borrowck/tainted-promoteds.rs:7:14 | 7 | a = &0 * &1 * &2 * &3; | ^^ note: erroneous constant used --> tests/ui/borrowck/tainted-promoteds.rs:7:19 | 7 | a = &0 * &1 * &2 * &3; | ^^ note: erroneous constant used --> tests/ui/borrowck/tainted-promoteds.rs:7:24 | 7 | a = &0 * &1 * &2 * &3; | ^^ ``` Borrowck failure doesn't indicate that there is anything wrong with promoteds. Leave them untainted.
13 lines
351 B
Rust
13 lines
351 B
Rust
// Regression test for issue #110856, where a borrowck error for a MIR tainted
|
|
// all promoteds within. This in turn generated a spurious "erroneous constant
|
|
// used" note when trying to evaluate a promoted.
|
|
|
|
pub fn f() -> u32 {
|
|
let a = 0;
|
|
a = &0 * &1 * &2 * &3;
|
|
//~^ ERROR: cannot assign twice to immutable variable
|
|
a
|
|
}
|
|
|
|
fn main() {}
|