Skip to content

Commit

Permalink
pretty=expanded should expand mod declarations
Browse files Browse the repository at this point in the history
  • Loading branch information
tinco committed Sep 10, 2018
1 parent c3afb16 commit 81a8ee8
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 6 deletions.
6 changes: 3 additions & 3 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -6288,10 +6288,9 @@ impl<'a> Parser<'a> {
// This mod is in an external file. Let's go get it!
let ModulePathSuccess { path, directory_ownership, warn } =
self.submod_path(id, &outer_attrs, id_span)?;
let (mut module, mut attrs) =
let (module, mut attrs) =
self.eval_src_mod(path, directory_ownership, id.to_string(), id_span)?;
// Record that we fetched the mod from an external file
module.inline = false;
if warn {
let attr = Attribute {
id: attr::mk_attr_id(),
Expand Down Expand Up @@ -6530,7 +6529,8 @@ impl<'a> Parser<'a> {
p0.cfg_mods = self.cfg_mods;
let mod_inner_lo = p0.span;
let mod_attrs = p0.parse_inner_attributes()?;
let m0 = p0.parse_mod_items(&token::Eof, mod_inner_lo)?;
let mut m0 = p0.parse_mod_items(&token::Eof, mod_inner_lo)?;
m0.inline = false;
self.sess.included_mod_stack.borrow_mut().pop();
Ok((m0, mod_attrs))
}
Expand Down
13 changes: 10 additions & 3 deletions src/libsyntax/print/pprust.rs
Expand Up @@ -61,6 +61,7 @@ pub struct State<'a> {
cur_cmnt: usize,
boxes: Vec<pp::Breaks>,
ann: &'a (dyn PpAnn+'a),
is_expanded: bool
}

fn rust_printer<'a>(writer: Box<dyn Write+'a>, ann: &'a dyn PpAnn) -> State<'a> {
Expand All @@ -72,6 +73,7 @@ fn rust_printer<'a>(writer: Box<dyn Write+'a>, ann: &'a dyn PpAnn) -> State<'a>
cur_cmnt: 0,
boxes: Vec::new(),
ann,
is_expanded: false
}
}

Expand Down Expand Up @@ -133,14 +135,17 @@ impl<'a> State<'a> {
// If the code is post expansion, don't use the table of
// literals, since it doesn't correspond with the literals
// in the AST anymore.
if is_expanded { None } else { Some(lits) })
if is_expanded { None } else { Some(lits) },
is_expanded
)
}

pub fn new(cm: &'a SourceMap,
out: Box<dyn Write+'a>,
ann: &'a dyn PpAnn,
comments: Option<Vec<comments::Comment>>,
literals: Option<Vec<comments::Literal>>) -> State<'a> {
literals: Option<Vec<comments::Literal>>,
is_expanded: bool) -> State<'a> {
State {
s: pp::mk_printer(out, DEFAULT_COLUMNS),
cm: Some(cm),
Expand All @@ -149,6 +154,7 @@ impl<'a> State<'a> {
cur_cmnt: 0,
boxes: Vec::new(),
ann,
is_expanded: is_expanded
}
}
}
Expand Down Expand Up @@ -1261,7 +1267,8 @@ impl<'a> State<'a> {
self.head(&visibility_qualified(&item.vis, "mod"))?;
self.print_ident(item.ident)?;

if _mod.inline {
if _mod.inline || self.is_expanded {
println!("Going to print inline anyway");
self.nbsp()?;
self.bopen()?;
self.print_mod(_mod, &item.attrs)?;
Expand Down
24 changes: 24 additions & 0 deletions src/test/pretty/issue_12590_c.pp
@@ -0,0 +1,24 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// pp-exact:issue_12590_c.pp
// pretty-mode:expanded

// The next line should be expanded

mod issue_12590_b {
fn b() { }

fn main() { }
}

fn main() { }
18 changes: 18 additions & 0 deletions src/test/pretty/issue_12590_c.rs
@@ -0,0 +1,18 @@
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// pp-exact:issue_12590_c.pp
// pretty-mode:expanded

// The next line should be expanded

mod issue_12590_b;

fn main() { }

0 comments on commit 81a8ee8

Please sign in to comment.