diff options
| author | bors <bors@rust-lang.org> | 2021-03-04 05:46:43 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-03-04 05:46:43 +0000 |
| commit | 7f32f62aa5ceba1b795f3702e502d8473238be6b (patch) | |
| tree | 48c8d23ee86a1ede67b57de4230a2f20320deb22 /compiler/rustc_driver | |
| parent | 6f7673d077add6b9a066e988b1b8b132a8193d6c (diff) | |
| parent | 61114453ae55a93da437adb8fbf6b8a901f4fee5 (diff) | |
| download | rust-7f32f62aa5ceba1b795f3702e502d8473238be6b.tar.gz rust-7f32f62aa5ceba1b795f3702e502d8473238be6b.zip | |
Auto merge of #82304 - LeSeulArtichaut:unpretty-ast, r=spastorino
Add `-Z unpretty` flags for the AST Implements rust-lang/compiler-team#408. Builds on #82269, but if that PR is rejected or stalls out, I can implement this without #82269. cc rust-lang/rustc-dev-guide#1062
Diffstat (limited to 'compiler/rustc_driver')
| -rw-r--r-- | compiler/rustc_driver/src/pretty.rs | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/compiler/rustc_driver/src/pretty.rs b/compiler/rustc_driver/src/pretty.rs index 1dcc4d147ac..38c493a920d 100644 --- a/compiler/rustc_driver/src/pretty.rs +++ b/compiler/rustc_driver/src/pretty.rs @@ -9,7 +9,7 @@ use rustc_hir_pretty as pprust_hir; use rustc_middle::hir::map as hir_map; use rustc_middle::ty::{self, TyCtxt}; use rustc_mir::util::{write_mir_graphviz, write_mir_pretty}; -use rustc_session::config::{Input, PpHirMode, PpMode, PpSourceMode}; +use rustc_session::config::{Input, PpAstTreeMode, PpHirMode, PpMode, PpSourceMode}; use rustc_session::Session; use rustc_span::symbol::Ident; use rustc_span::FileName; @@ -391,24 +391,29 @@ pub fn print_after_parsing( ) { let (src, src_name) = get_source(input, sess); - let out = if let Source(s) = ppm { - // Silently ignores an identified node. - call_with_pp_support(&s, sess, None, move |annotation| { - debug!("pretty printing source code {:?}", s); - let sess = annotation.sess(); - let parse = &sess.parse_sess; - pprust::print_crate( - sess.source_map(), - krate, - src_name, - src, - annotation.pp_ann(), - false, - parse.edition, - ) - }) - } else { - unreachable!() + let out = match ppm { + Source(s) => { + // Silently ignores an identified node. + call_with_pp_support(&s, sess, None, move |annotation| { + debug!("pretty printing source code {:?}", s); + let sess = annotation.sess(); + let parse = &sess.parse_sess; + pprust::print_crate( + sess.source_map(), + krate, + src_name, + src, + annotation.pp_ann(), + false, + parse.edition, + ) + }) + } + AstTree(PpAstTreeMode::Normal) => { + debug!("pretty printing AST tree"); + format!("{:#?}", krate) + } + _ => unreachable!(), }; write_or_print(&out, ofile); @@ -447,6 +452,11 @@ pub fn print_after_hir_lowering<'tcx>( }) } + AstTree(PpAstTreeMode::Expanded) => { + debug!("pretty-printing expanded AST"); + format!("{:#?}", krate) + } + Hir(s) => call_with_pp_support_hir(&s, tcx, move |annotation, krate| { debug!("pretty printing HIR {:?}", s); let sess = annotation.sess(); |
