mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 14:21:44 +00:00
internal: overhaul code generation
* Keep codegen adjacent to the relevant crates. * Remove codgen deps from xtask, speeding-up from-source installation. This regresses the release process a bit, as it now needs to run the tests (and, by extension, compile the code).
This commit is contained in:
parent
668d061245
commit
58d2ece88a
31 changed files with 686 additions and 659 deletions
|
@ -9,8 +9,6 @@
|
|||
//! `.cargo/config`.
|
||||
mod flags;
|
||||
|
||||
mod codegen;
|
||||
mod ast_src;
|
||||
#[cfg(test)]
|
||||
mod tidy;
|
||||
|
||||
|
@ -24,7 +22,6 @@ use std::{
|
|||
env,
|
||||
path::{Path, PathBuf},
|
||||
};
|
||||
use walkdir::{DirEntry, WalkDir};
|
||||
use xshell::{cmd, cp, pushd, pushenv};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
|
@ -63,31 +60,6 @@ fn project_root() -> PathBuf {
|
|||
.to_path_buf()
|
||||
}
|
||||
|
||||
fn rust_files() -> impl Iterator<Item = PathBuf> {
|
||||
rust_files_in(&project_root().join("crates"))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
fn cargo_files() -> impl Iterator<Item = PathBuf> {
|
||||
files_in(&project_root(), "toml")
|
||||
.filter(|path| path.file_name().map(|it| it == "Cargo.toml").unwrap_or(false))
|
||||
}
|
||||
|
||||
fn rust_files_in(path: &Path) -> impl Iterator<Item = PathBuf> {
|
||||
files_in(path, "rs")
|
||||
}
|
||||
|
||||
fn ensure_rustfmt() -> Result<()> {
|
||||
let out = cmd!("rustfmt --version").read()?;
|
||||
if !out.contains("stable") {
|
||||
bail!(
|
||||
"Failed to run rustfmt from toolchain 'stable'. \
|
||||
Please run `rustup component add rustfmt --toolchain stable` to install it.",
|
||||
)
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn run_fuzzer() -> Result<()> {
|
||||
let _d = pushd("./crates/syntax")?;
|
||||
let _e = pushenv("RUSTUP_TOOLCHAIN", "nightly");
|
||||
|
@ -113,18 +85,3 @@ fn date_iso() -> Result<String> {
|
|||
fn is_release_tag(tag: &str) -> bool {
|
||||
tag.len() == "2020-02-24".len() && tag.starts_with(|c: char| c.is_ascii_digit())
|
||||
}
|
||||
|
||||
fn files_in(path: &Path, ext: &'static str) -> impl Iterator<Item = PathBuf> {
|
||||
let iter = WalkDir::new(path);
|
||||
return iter
|
||||
.into_iter()
|
||||
.filter_entry(|e| !is_hidden(e))
|
||||
.map(|e| e.unwrap())
|
||||
.filter(|e| !e.file_type().is_dir())
|
||||
.map(|e| e.into_path())
|
||||
.filter(move |path| path.extension().map(|it| it == ext).unwrap_or(false));
|
||||
|
||||
fn is_hidden(entry: &DirEntry) -> bool {
|
||||
entry.file_name().to_str().map(|s| s.starts_with('.')).unwrap_or(false)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue