Improve compile time a tiny bit

This commit is contained in:
Aleksey Kladov 2020-10-16 19:47:47 +02:00
parent 4271e4c703
commit c7a079d32d
4 changed files with 13 additions and 10 deletions

View file

@ -77,12 +77,12 @@ fn update(path: &Path, contents: &str, mode: Mode) -> Result<()> {
const PREAMBLE: &str = "Generated file, do not edit by hand, see `xtask/src/codegen`"; const PREAMBLE: &str = "Generated file, do not edit by hand, see `xtask/src/codegen`";
fn reformat(text: impl std::fmt::Display) -> Result<String> { fn reformat(text: &str) -> Result<String> {
let _e = pushenv("RUSTUP_TOOLCHAIN", "stable"); let _e = pushenv("RUSTUP_TOOLCHAIN", "stable");
ensure_rustfmt()?; ensure_rustfmt()?;
let stdout = run!( let stdout = run!(
"rustfmt --config-path {} --config fn_single_line=true", project_root().join("rustfmt.toml").display(); "rustfmt --config-path {} --config fn_single_line=true", project_root().join("rustfmt.toml").display();
<text.to_string().as_bytes() <text.as_bytes()
)?; )?;
Ok(format!("//! {}\n\n{}\n", PREAMBLE, stdout)) Ok(format!("//! {}\n\n{}\n", PREAMBLE, stdout))
} }

View file

@ -134,7 +134,7 @@ r#####"
buf.push_str(&test) buf.push_str(&test)
} }
let buf = reformat(buf)?; let buf = reformat(&buf.to_string())?;
codegen::update(&project_root().join("crates/assists/src/tests/generated.rs"), &buf, mode) codegen::update(&project_root().join("crates/assists/src/tests/generated.rs"), &buf, mode)
} }

View file

@ -46,5 +46,5 @@ fn generate_descriptor(src_dir: PathBuf) -> Result<String> {
#(#definitions),* #(#definitions),*
]; ];
}; };
reformat(ts) reformat(&ts.to_string())
} }

View file

@ -61,10 +61,13 @@ fn generate_tokens(grammar: &AstSrc) -> Result<String> {
} }
}); });
let pretty = reformat(quote! { let pretty = reformat(
use crate::{SyntaxKind::{self, *}, SyntaxToken, ast::AstToken}; &quote! {
#(#tokens)* use crate::{SyntaxKind::{self, *}, SyntaxToken, ast::AstToken};
})? #(#tokens)*
}
.to_string(),
)?
.replace("#[derive", "\n#[derive"); .replace("#[derive", "\n#[derive");
Ok(pretty) Ok(pretty)
} }
@ -261,7 +264,7 @@ fn generate_nodes(kinds: KindsSrc<'_>, grammar: &AstSrc) -> Result<String> {
} }
} }
let pretty = reformat(res)?; let pretty = reformat(&res)?;
Ok(pretty) Ok(pretty)
} }
@ -383,7 +386,7 @@ fn generate_syntax_kinds(grammar: KindsSrc<'_>) -> Result<String> {
} }
}; };
reformat(ast) reformat(&ast.to_string())
} }
fn to_upper_snake_case(s: &str) -> String { fn to_upper_snake_case(s: &str) -> String {