I like to write names of functions and variables in my native language instead of English, and this requires:
#![feature(non_ascii_idents)]
Unfortunately, this in turn requires to use the "nightly" toolchain, because the "stable" one gives me:
"#![feature]" may not be used on the stable release channel
Now, here is the real problem. I use the "clippy" component in order to optimise my code, but for the past few weeks, it's been a nightmare to update "nightly" + "clippy", because "clippy" is not easily available anymore. Indeed, if you go to:
you will see that "clippy" was unavailable 5 days out of 7.
Now, I know that I can install a toolchain from a specific date, but this means that I have to check manually the last availability of "clippy" and run carefully crafted commands, instead of just running:
This is far from a solution, but if you can get a working nightly+clippy toolchain, then rustup update will work as you describe.
Specifically, if you can run rustup update; rustup component add clippy --toolchain nightly successfully on a day where the latest nightly has clippy available, then running rustup updateafter that will skip over all "bad" nightly versions.
Yes, unfortunately nightly breaks clippy and rls often because these components are tightly coupled to the compiler. The best thing to do AFAIK is pin your compiler to a specific nightly version by creating a toolchain file in your repo. Then you can decide when (and which specific version) to update to at your leisure.
You can also do this same thing system-wide by setting your default compiler to a specific nightly build, instead of the nightly channel. e.g. rustup default nightly-2019-10-04