Add check step, stuck on 'no output generated for libgoto_def-hash rmeta'

This commit is contained in:
Amos Wenger 2022-07-22 16:23:40 +02:00
parent 0f2266d3cc
commit 9cf485c3db
2 changed files with 60 additions and 0 deletions

View File

@ -621,6 +621,7 @@ macro_rules! describe {
check::Clippy,
check::Miri,
check::Rls,
check::RustAnalyzer,
check::Rustfmt,
check::Bootstrap
),

View File

@ -301,6 +301,65 @@ fn run(self, builder: &Builder<'_>) {
}
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
pub struct RustAnalyzer {
pub target: TargetSelection,
}
impl Step for RustAnalyzer {
type Output = ();
const ONLY_HOSTS: bool = true;
const DEFAULT: bool = true;
fn should_run(run: ShouldRun<'_>) -> ShouldRun<'_> {
run.paths(&["src/tools/rust-analyzer"])
}
fn make_run(run: RunConfig<'_>) {
run.builder.ensure(RustAnalyzer { target: run.target });
}
fn run(self, builder: &Builder<'_>) {
let compiler = builder.compiler(builder.top_stage, builder.config.build);
let target = self.target;
builder.ensure(Std { target });
let mut cargo = prepare_tool_cargo(
builder,
compiler,
Mode::ToolStd,
target,
cargo_subcommand(builder.kind),
"src/tools/rust-analyzer",
SourceType::InTree,
&["rust-analyzer/in-rust-tree".to_owned()],
);
cargo.rustflag(
"-Zallow-features=proc_macro_internals,proc_macro_diagnostic,proc_macro_span",
);
// For ./x.py clippy, don't run with --all-targets because
// linting tests and benchmarks can produce very noisy results
if builder.kind != Kind::Clippy {
cargo.arg("--all-targets");
}
builder.info(&format!(
"Checking stage{} {} artifacts ({} -> {})",
builder.top_stage, "rust-analyzer", &compiler.host.triple, target.triple
));
run_cargo(builder, cargo, args(builder), &stamp(builder, compiler, target), vec![], true);
/// Cargo's output path in a given stage, compiled by a particular
/// compiler for the specified target.
fn stamp(builder: &Builder<'_>, compiler: Compiler, target: TargetSelection) -> PathBuf {
builder.cargo_out(compiler, Mode::ToolStd, target).join(".rust-analyzer-check.stamp")
}
}
}
macro_rules! tool_check_step {
($name:ident, $path:literal, $($alias:literal, )* $source_type:path $(, $default:literal )?) => {
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]