File tree Expand file tree Collapse file tree 2 files changed +58
-0
lines changed Expand file tree Collapse file tree 2 files changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ struct Project ;
2+ struct Value ;
3+
4+ static settings_dir: String = format ! ( "" ) ;
5+ //~^ ERROR [E0019]
6+ //~| ERROR [E0015]
7+ //~| ERROR [E0015]
8+
9+ fn from_string ( _: String ) -> Value {
10+ Value
11+ }
12+ fn set_editor ( _: Value ) { }
13+
14+ fn main ( ) {
15+ let settings_data = from_string ( settings_dir) ;
16+ //~^ ERROR cannot move out of static item `settings_dir` [E0507]
17+ let args: i32 = 0 ;
18+
19+ match args {
20+ ref x if x == & 0 => set_editor ( settings_data) ,
21+ ref x if x == & 1 => set_editor ( settings_data) ,
22+ _ => unimplemented ! ( ) ,
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ error[E0507]: cannot move out of static item `settings_dir`
2+ --> $DIR/issue-64453.rs:15:37
3+ |
4+ LL | let settings_data = from_string(settings_dir);
5+ | ^^^^^^^^^^^^ move occurs because `settings_dir` has type `std::string::String`, which does not implement the `Copy` trait
6+
7+ error[E0019]: static contains unimplemented expression type
8+ --> $DIR/issue-64453.rs:4:31
9+ |
10+ LL | static settings_dir: String = format!("");
11+ | ^^^^^^^^^^^
12+ |
13+ = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
14+
15+ error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
16+ --> $DIR/issue-64453.rs:4:31
17+ |
18+ LL | static settings_dir: String = format!("");
19+ | ^^^^^^^^^^^
20+ |
21+ = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
22+
23+ error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
24+ --> $DIR/issue-64453.rs:4:31
25+ |
26+ LL | static settings_dir: String = format!("");
27+ | ^^^^^^^^^^^
28+ |
29+ = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
30+
31+ error: aborting due to 4 previous errors
32+
33+ Some errors have detailed explanations: E0015, E0019, E0507.
34+ For more information about an error, try `rustc --explain E0015`.
You can’t perform that action at this time.
0 commit comments