Rollup merge of #64914 - pnkfelix:issue-64453-regression-test, r=nikomatsakis
regression test for 64453 borrow check error. Fix #64453
This commit is contained in:
commit
fe5fad8912
24
src/test/ui/borrowck/issue-64453.rs
Normal file
24
src/test/ui/borrowck/issue-64453.rs
Normal file
@ -0,0 +1,24 @@
|
||||
struct Project;
|
||||
struct Value;
|
||||
|
||||
static settings_dir: String = format!("");
|
||||
//~^ ERROR [E0019]
|
||||
//~| ERROR [E0015]
|
||||
//~| ERROR [E0015]
|
||||
|
||||
fn from_string(_: String) -> Value {
|
||||
Value
|
||||
}
|
||||
fn set_editor(_: Value) {}
|
||||
|
||||
fn main() {
|
||||
let settings_data = from_string(settings_dir);
|
||||
//~^ ERROR cannot move out of static item `settings_dir` [E0507]
|
||||
let args: i32 = 0;
|
||||
|
||||
match args {
|
||||
ref x if x == &0 => set_editor(settings_data),
|
||||
ref x if x == &1 => set_editor(settings_data),
|
||||
_ => unimplemented!(),
|
||||
}
|
||||
}
|
34
src/test/ui/borrowck/issue-64453.stderr
Normal file
34
src/test/ui/borrowck/issue-64453.stderr
Normal file
@ -0,0 +1,34 @@
|
||||
error[E0507]: cannot move out of static item `settings_dir`
|
||||
--> $DIR/issue-64453.rs:15:37
|
||||
|
|
||||
LL | let settings_data = from_string(settings_dir);
|
||||
| ^^^^^^^^^^^^ move occurs because `settings_dir` has type `std::string::String`, which does not implement the `Copy` trait
|
||||
|
||||
error[E0019]: static contains unimplemented expression type
|
||||
--> $DIR/issue-64453.rs:4:31
|
||||
|
|
||||
LL | static settings_dir: String = format!("");
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/issue-64453.rs:4:31
|
||||
|
|
||||
LL | static settings_dir: String = format!("");
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
|
||||
--> $DIR/issue-64453.rs:4:31
|
||||
|
|
||||
LL | static settings_dir: String = format!("");
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0015, E0019, E0507.
|
||||
For more information about an error, try `rustc --explain E0015`.
|
Loading…
x
Reference in New Issue
Block a user