Fix the problem of different edition between rustc and rust-analyzer

This commit is contained in:
wjwrh 2023-02-05 14:10:23 +08:00
parent ce7ffcd8e9
commit 1721ddc231
1 changed files with 5 additions and 1 deletions

View File

@ -8,6 +8,7 @@ use std::path::PathBuf;
use std::process::{self, Command}; use std::process::{self, Command};
const RUSTC_COLOR_ARGS: &[&str] = &["--color", "always"]; const RUSTC_COLOR_ARGS: &[&str] = &["--color", "always"];
const RUSTC_EDITION_ARGS: &[&str] = &["--edition", "2021"];
const I_AM_DONE_REGEX: &str = r"(?m)^\s*///?\s*I\s+AM\s+NOT\s+DONE"; const I_AM_DONE_REGEX: &str = r"(?m)^\s*///?\s*I\s+AM\s+NOT\s+DONE";
const CONTEXT: usize = 2; const CONTEXT: usize = 2;
const CLIPPY_CARGO_TOML_PATH: &str = "./exercises/clippy/Cargo.toml"; const CLIPPY_CARGO_TOML_PATH: &str = "./exercises/clippy/Cargo.toml";
@ -111,10 +112,12 @@ impl Exercise {
Mode::Compile => Command::new("rustc") Mode::Compile => Command::new("rustc")
.args(&[self.path.to_str().unwrap(), "-o", &temp_file()]) .args(&[self.path.to_str().unwrap(), "-o", &temp_file()])
.args(RUSTC_COLOR_ARGS) .args(RUSTC_COLOR_ARGS)
.args(RUSTC_EDITION_ARGS)
.output(), .output(),
Mode::Test => Command::new("rustc") Mode::Test => Command::new("rustc")
.args(&["--test", self.path.to_str().unwrap(), "-o", &temp_file()]) .args(&["--test", self.path.to_str().unwrap(), "-o", &temp_file()])
.args(RUSTC_COLOR_ARGS) .args(RUSTC_COLOR_ARGS)
.args(RUSTC_EDITION_ARGS)
.output(), .output(),
Mode::Clippy => { Mode::Clippy => {
let cargo_toml = format!( let cargo_toml = format!(
@ -140,6 +143,7 @@ path = "{}.rs""#,
Command::new("rustc") Command::new("rustc")
.args(&[self.path.to_str().unwrap(), "-o", &temp_file()]) .args(&[self.path.to_str().unwrap(), "-o", &temp_file()])
.args(RUSTC_COLOR_ARGS) .args(RUSTC_COLOR_ARGS)
.args(RUSTC_EDITION_ARGS)
.output() .output()
.expect("Failed to compile!"); .expect("Failed to compile!");
// Due to an issue with Clippy, a cargo clean is required to catch all lints. // Due to an issue with Clippy, a cargo clean is required to catch all lints.
@ -154,7 +158,7 @@ path = "{}.rs""#,
Command::new("cargo") Command::new("cargo")
.args(&["clippy", "--manifest-path", CLIPPY_CARGO_TOML_PATH]) .args(&["clippy", "--manifest-path", CLIPPY_CARGO_TOML_PATH])
.args(RUSTC_COLOR_ARGS) .args(RUSTC_COLOR_ARGS)
.args(&["--", "-D", "warnings","-D","clippy::float_cmp"]) .args(&["--", "-D", "warnings", "-D", "clippy::float_cmp"])
.output() .output()
} }
} }