File tree 2 files changed +58
-0
lines changed
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