Change:
err : code i was compiling : rest code lives at
Can you please check the beta & nightly compilers to see if you can reproduce? Also, if you can reproduce it, can you provide a backtrace (instructions in the ICE) and try to minimize the reproducer (start by adding instead of method bodies one by one and binary search your way by removing code)?
cc
after rebooting my issue seem to be gone , but i believe i should leave issue open for investigation , and beta channel test i could not test that as issue was resolved after my laptop rebooted due to system update , i apologize of being unhelpful ! , i will keep on testing and update you if i encounter any issue
maybe it wasn't the reboot, but did you execute in between? Then it may be a incremental compilation issue.
its the first time i am seeing that cargo has clean command
I ran , and still got the same compiler error. This is the code code:
Both code used file I/O library. In my case, my code worked before I applied writing files. Maybe borrowing check makes an error in writing files in current rust nightly compiler. My compiler environment is :
Minimized it:
It has been introduced <strikesomewhere between ...</strikein It has been fixed <strikesomewhere between ...</strikein
triage: stable-to-stable regression. Fixed in beta. Once release happens (scheduled for next week), it will be fixed.
(only remaining question I have is whether to add the reduced example as a regression test or not. The looks different enough from that I think a regression test may be warranted.)

Discussion:
<ins> 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!(), } } </ins>

<ins> 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`. </ins>