更改每晚的 Rust 版本?
Change nightly Rust version?
我尝试通过命令 cargo +nightly build --release -Z unstable-options
构建 rls,但出现以下错误:
error[E0599]: no method named `expect_none` found for enum `Option<Fingerprint>` in the current scope
--> /Users/cjw/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_span-705.0.0/src/lib.rs:2003:48
|
2003 | cache[index].replace(sub_hash).expect_none("Cache slot was filled");
| ^^^^^^^^^^^ method not found in `Option<Fingerprint>`
搜索后,我发现expect_none
是夜间功能,似乎已被删除。
所以我想也许我应该更改 rust 编译器版本以解决编译问题。如果这是正确的解决方案,我该怎么做?谁能提供一些详细的建议?
使用rustup
您可以管理不同的夜间版本。有关更多信息,请参阅 The Edition Guide。
作为Option::expect_none
was removed on March 25th,我们可以通过以下方式获取3月24日的每晚:
rustup toolchain install nightly-2021-03-24 --force
注意:使用 --force
选项是因为组件 rustfmt
和 clippy
可能缺失。
切换到新下载的工具链:
rustup default nightly-2021-03-24
以下 main.rs
现在应该像预期的那样恐慌:
#![feature(option_expect_none)]
fn main() {
let value = Some(42);
value.expect_none("The answer");
}
如果你很好奇,你可以用 nightly-2021-03-26
试试这个,你会发现它会给你预期的错误,表明它确实被删除了:
error[E0599]: no method named `expect_none` found for enum `Option<{integer}>` in the current scope
--> src/main.rs:5:11
|
5 | value.expect_none("Expected none!");
| ^^^^^^^^^^^ method not found in `Option<{integer}>`
我尝试通过命令 cargo +nightly build --release -Z unstable-options
构建 rls,但出现以下错误:
error[E0599]: no method named `expect_none` found for enum `Option<Fingerprint>` in the current scope
--> /Users/cjw/.cargo/registry/src/github.com-1ecc6299db9ec823/rustc-ap-rustc_span-705.0.0/src/lib.rs:2003:48
|
2003 | cache[index].replace(sub_hash).expect_none("Cache slot was filled");
| ^^^^^^^^^^^ method not found in `Option<Fingerprint>`
搜索后,我发现expect_none
是夜间功能,似乎已被删除。
所以我想也许我应该更改 rust 编译器版本以解决编译问题。如果这是正确的解决方案,我该怎么做?谁能提供一些详细的建议?
使用rustup
您可以管理不同的夜间版本。有关更多信息,请参阅 The Edition Guide。
作为Option::expect_none
was removed on March 25th,我们可以通过以下方式获取3月24日的每晚:
rustup toolchain install nightly-2021-03-24 --force
注意:使用 --force
选项是因为组件 rustfmt
和 clippy
可能缺失。
切换到新下载的工具链:
rustup default nightly-2021-03-24
以下 main.rs
现在应该像预期的那样恐慌:
#![feature(option_expect_none)]
fn main() {
let value = Some(42);
value.expect_none("The answer");
}
如果你很好奇,你可以用 nightly-2021-03-26
试试这个,你会发现它会给你预期的错误,表明它确实被删除了:
error[E0599]: no method named `expect_none` found for enum `Option<{integer}>` in the current scope
--> src/main.rs:5:11
|
5 | value.expect_none("Expected none!");
| ^^^^^^^^^^^ method not found in `Option<{integer}>`