pretty=expanded should expand mod declarations
This commit is contained in:
parent
c3afb16e16
commit
81a8ee8fc4
4 changed files with 55 additions and 6 deletions
|
@ -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(),
|
||||
|
@ -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))
|
||||
}
|
||||
|
|
|
@ -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> {
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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),
|
||||
|
@ -149,6 +154,7 @@ impl<'a> State<'a> {
|
|||
cur_cmnt: 0,
|
||||
boxes: Vec::new(),
|
||||
ann,
|
||||
is_expanded: is_expanded
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)?;
|
||||
|
|
24
src/test/pretty/issue_12590_c.pp
Normal file
24
src/test/pretty/issue_12590_c.pp
Normal file
|
@ -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
src/test/pretty/issue_12590_c.rs
Normal file
18
src/test/pretty/issue_12590_c.rs
Normal file
|
@ -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() { }
|
Loading…
Add table
Reference in a new issue