Format generated code through rustfmt
diff --git a/codegen/src/main.rs b/codegen/src/main.rs
index a230430..89eec81 100644
--- a/codegen/src/main.rs
+++ b/codegen/src/main.rs
@@ -20,6 +20,7 @@
extern crate quote;
#[macro_use]
extern crate syn;
+extern crate rustfmt_nightly as rustfmt;
use failure::{err_msg, Error};
use proc_macro2::{Span, TokenStream};
@@ -29,7 +30,7 @@
use std::collections::BTreeMap;
use std::fmt::{self, Debug};
use std::fs::File;
-use std::io::{Read, Write};
+use std::io::Read;
use std::path::Path;
const SYN_CRATE_ROOT: &str = "../src/lib.rs";
@@ -911,6 +912,15 @@
}
}
+fn write_file(path: &str, content: String) {
+ let mut file = File::create(path).unwrap();
+ let mut config = rustfmt::Config::default();
+ config.set().emit_mode(rustfmt::EmitMode::Stdout);
+ config.set().verbose(rustfmt::Verbosity::Quiet);
+ let mut session = rustfmt::Session::new(config, Some(&mut file));
+ session.format(rustfmt::Input::Text(content)).unwrap();
+}
+
fn main() {
let mut lookup = BTreeMap::new();
load_file(SYN_CRATE_ROOT, "e!(), &mut lookup).unwrap();
@@ -957,14 +967,10 @@
}
";
- let mut fold_file = File::create(FOLD_SRC).unwrap();
- write!(
- fold_file,
+ write_file(FOLD_SRC, format!(
"\
// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
// Unreachable code is generated sometimes without the full feature.
#![allow(unreachable_code)]
#![cfg_attr(feature = \"cargo-clippy\", allow(needless_pass_by_value))]
@@ -1018,16 +1024,12 @@
full_macro = full_macro,
fold_trait = state.fold_trait,
fold_impl = state.fold_impl
- ).unwrap();
+ ));
- let mut visit_file = File::create(VISIT_SRC).unwrap();
- write!(
- visit_file,
+ write_file(VISIT_SRC, format!(
"\
// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
#![cfg_attr(feature = \"cargo-clippy\", allow(match_same_arms))]
use *;
@@ -1055,16 +1057,12 @@
full_macro = full_macro,
visit_trait = state.visit_trait,
visit_impl = state.visit_impl
- ).unwrap();
+ ));
- let mut visit_mut_file = File::create(VISIT_MUT_SRC).unwrap();
- write!(
- visit_mut_file,
+ write_file(VISIT_MUT_SRC, format!(
"\
// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
-#![cfg_attr(rustfmt, rustfmt_skip)]
-
#![cfg_attr(feature = \"cargo-clippy\", allow(match_same_arms))]
use *;
@@ -1093,5 +1091,5 @@
full_macro = full_macro,
visit_mut_trait = state.visit_mut_trait,
visit_mut_impl = state.visit_mut_impl
- ).unwrap();
+ ));
}