Skip to content

Commit 05b8bd6

Browse files
committed
save dev state
Signed-off-by: onur-ozkan <[email protected]>
1 parent b6e4299 commit 05b8bd6

File tree

6 files changed

+74
-16
lines changed

6 files changed

+74
-16
lines changed
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use crate::core::builder::Builder;
2+
use std::path::PathBuf;
3+
4+
pub fn lint(build: &Builder<'_>, paths: &[PathBuf]) {
5+
if build.config.dry_run() {
6+
return;
7+
}
8+
9+
let compiler = build.compiler(0, build.config.build);
10+
11+
for path in paths {
12+
let mut clippy = build.cargo_clippy_cmd(compiler);
13+
clippy.current_dir(path);
14+
15+
clippy.env("RUSTC_BOOTSTRAP", "1");
16+
clippy.args(["--all-targets", "--all-features", "--", "--D", "warnings"]);
17+
build.run(&mut clippy);
18+
}
19+
}

src/bootstrap/src/core/build_steps/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ pub(crate) mod dist;
55
pub(crate) mod doc;
66
pub(crate) mod format;
77
pub(crate) mod install;
8+
pub(crate) mod lint;
89
pub(crate) mod llvm;
910
pub(crate) mod run;
1011
pub(crate) mod setup;

src/bootstrap/src/core/build_steps/test.rs

+41
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,47 @@ HELP: to skip test's attempt to check tidiness, pass `--skip src/tools/tidy` to
11171117
crate::exit!(1);
11181118
}
11191119
crate::core::build_steps::format::format(builder, !builder.config.cmd.bless(), &[]);
1120+
1121+
// TODO: don't run this by default (check if clippy is enabled in the build configuration)
1122+
builder.info("lint check");
1123+
crate::core::build_steps::lint::lint(
1124+
builder,
1125+
&[
1126+
// builder.src.join("src/bootstrap"),
1127+
builder.src.join("src/tools/build_helper"),
1128+
builder.src.join("src/tools/build-manifest"),
1129+
builder.src.join("src/tools/bump-stage0"),
1130+
builder.src.join("src/tools/cargotest"),
1131+
builder.src.join("src/tools/collect-license-metadata"),
1132+
builder.src.join("src/tools/compiletest"),
1133+
builder.src.join("src/tools/coverage-dump"),
1134+
builder.src.join("src/tools/error_index_generator"),
1135+
builder.src.join("src/tools/expand-yaml-anchors"),
1136+
builder.src.join("src/tools/generate-copyright"),
1137+
builder.src.join("src/tools/generate-windows-sys"),
1138+
builder.src.join("src/tools/html-checker"),
1139+
builder.src.join("src/tools/jsondocck"),
1140+
builder.src.join("src/tools/jsondoclint"),
1141+
builder.src.join("src/tools/linkchecker"),
1142+
builder.src.join("src/tools/lint-docs"),
1143+
builder.src.join("src/tools/lld-wrapper"),
1144+
builder.src.join("src/tools/miropt-test-tools"),
1145+
builder.src.join("src/tools/opt-dist"),
1146+
builder.src.join("src/tools/remote-test-client"),
1147+
builder.src.join("src/tools/remote-test-server"),
1148+
builder.src.join("src/tools/replace-version-placeholder"),
1149+
builder.src.join("src/tools/rust-demangler"),
1150+
builder.src.join("src/tools/rust-installer"),
1151+
builder.src.join("src/tools/rustbook"),
1152+
builder.src.join("src/tools/rustdoc-gui-test"),
1153+
builder.src.join("src/tools/rustdoc-themes"),
1154+
builder.src.join("src/tools/suggest-tests"),
1155+
builder.src.join("src/tools/tier-check"),
1156+
builder.src.join("src/tools/unicode-table-generator"),
1157+
builder.src.join("src/tools/unstable-book-gen"),
1158+
builder.src.join("src/tools/x"),
1159+
],
1160+
);
11201161
}
11211162

11221163
builder.info("tidy check");

src/tools/build_helper/src/ci.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ impl CiEnv {
3030
// The explicit `TERM=xterm` environment is needed for
3131
// `--color always` to actually work. This env var was lost when
3232
// compiling through the Makefile. Very strange.
33-
cmd.env("TERM", "xterm").args(&["--color", "always"]);
33+
cmd.env("TERM", "xterm").args(["--color", "always"]);
3434
}
3535
}
3636
}

src/tools/build_helper/src/git.rs

+11-15
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fn output_result(cmd: &mut Command) -> Result<String, String> {
2121
String::from_utf8(output.stderr).map_err(|err| format!("{err:?}"))?
2222
));
2323
}
24-
Ok(String::from_utf8(output.stdout).map_err(|err| format!("{err:?}"))?)
24+
String::from_utf8(output.stdout).map_err(|err| format!("{err:?}"))
2525
}
2626

2727
/// Finds the remote for rust-lang/rust.
@@ -64,18 +64,14 @@ pub fn rev_exists(rev: &str, git_dir: Option<&Path>) -> Result<bool, String> {
6464
match output.status.code() {
6565
Some(0) => Ok(true),
6666
Some(128) => Ok(false),
67-
None => {
68-
return Err(format!(
69-
"git didn't exit properly: {}",
70-
String::from_utf8(output.stderr).map_err(|err| format!("{err:?}"))?
71-
));
72-
}
73-
Some(code) => {
74-
return Err(format!(
75-
"git command exited with status code: {code}: {}",
76-
String::from_utf8(output.stderr).map_err(|err| format!("{err:?}"))?
77-
));
78-
}
67+
None => Err(format!(
68+
"git didn't exit properly: {}",
69+
String::from_utf8(output.stderr).map_err(|err| format!("{err:?}"))?
70+
)),
71+
Some(code) => Err(format!(
72+
"git command exited with status code: {code}: {}",
73+
String::from_utf8(output.stderr).map_err(|err| format!("{err:?}"))?
74+
)),
7975
}
8076
}
8177

@@ -96,7 +92,7 @@ pub fn updated_master_branch(
9692
}
9793
}
9894

99-
Err(format!("Cannot find any suitable upstream master branch"))
95+
Err("Cannot find any suitable upstream master branch".to_string())
10096
}
10197

10298
pub fn get_git_merge_base(
@@ -117,7 +113,7 @@ pub fn get_git_merge_base(
117113
pub fn get_git_modified_files(
118114
config: &GitConfig<'_>,
119115
git_dir: Option<&Path>,
120-
extensions: &Vec<&str>,
116+
extensions: &[&str],
121117
) -> Result<Option<Vec<String>>, String> {
122118
let merge_base = get_git_merge_base(config, git_dir)?;
123119

src/tools/build_helper/src/util.rs

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ pub fn fail(s: &str) -> ! {
2727
detail_exit(1, cfg!(test));
2828
}
2929

30+
#[allow(clippy::result_unit_err)]
3031
pub fn try_run(cmd: &mut Command, print_cmd_on_fail: bool) -> Result<(), ()> {
3132
let status = match cmd.status() {
3233
Ok(status) => status,

0 commit comments

Comments
 (0)