diff --git a/src/librustc_parse/parser/mod.rs b/src/librustc_parse/parser/mod.rs index a1035d320b31c..1368230168e07 100644 --- a/src/librustc_parse/parser/mod.rs +++ b/src/librustc_parse/parser/mod.rs @@ -2,6 +2,7 @@ pub mod attr; mod expr; mod item; mod module; +pub use module::{ModulePath, ModulePathSuccess}; mod pat; mod path; mod ty; @@ -117,7 +118,8 @@ pub struct Parser<'a> { /// Used to determine the path to externally loaded source files. pub(super) directory: Directory<'a>, /// `true` to parse sub-modules in other files. - pub(super) recurse_into_file_modules: bool, + // Public for rustfmt usage. + pub recurse_into_file_modules: bool, /// Name of the root module this parser originated from. If `None`, then the /// name is not known. This does not change while the parser is descending /// into modules, and sub-parsers have new values for this name. @@ -126,7 +128,8 @@ pub struct Parser<'a> { token_cursor: TokenCursor, desugar_doc_comments: bool, /// `true` we should configure out of line modules as we parse. - cfg_mods: bool, + // Public for rustfmt usage. + pub cfg_mods: bool, /// This field is used to keep track of how many left angle brackets we have seen. This is /// required in order to detect extra leading left angle brackets (`<` characters) and error /// appropriately. @@ -483,7 +486,8 @@ impl<'a> Parser<'a> { } } - fn parse_ident(&mut self) -> PResult<'a, ast::Ident> { + // Public for rustfmt usage. + pub fn parse_ident(&mut self) -> PResult<'a, ast::Ident> { self.parse_ident_common(true) } @@ -540,7 +544,8 @@ impl<'a> Parser<'a> { /// If the next token is the given keyword, eats it and returns `true`. /// Otherwise, returns `false`. An expectation is also added for diagnostics purposes. - fn eat_keyword(&mut self, kw: Symbol) -> bool { + // Public for rustfmt usage. + pub fn eat_keyword(&mut self, kw: Symbol) -> bool { if self.check_keyword(kw) { self.bump(); true diff --git a/src/librustc_parse/parser/module.rs b/src/librustc_parse/parser/module.rs index 3254ab5b46325..6ce94d3c6793c 100644 --- a/src/librustc_parse/parser/module.rs +++ b/src/librustc_parse/parser/module.rs @@ -14,13 +14,15 @@ use syntax::token::{self, TokenKind}; use std::path::{self, Path, PathBuf}; /// Information about the path to a module. -pub(super) struct ModulePath { +// Public for rustfmt usage. +pub struct ModulePath { name: String, path_exists: bool, pub result: Result, } -pub(super) struct ModulePathSuccess { +// Public for rustfmt usage. +pub struct ModulePathSuccess { pub path: PathBuf, pub directory_ownership: DirectoryOwnership, } @@ -177,7 +179,8 @@ impl<'a> Parser<'a> { } } - pub(super) fn submod_path_from_attr(attrs: &[Attribute], dir_path: &Path) -> Option { + // Public for rustfmt usage. + pub fn submod_path_from_attr(attrs: &[Attribute], dir_path: &Path) -> Option { if let Some(s) = attr::first_attr_value_str_by_name(attrs, sym::path) { let s = s.as_str(); @@ -194,7 +197,8 @@ impl<'a> Parser<'a> { } /// Returns a path to a module. - pub(super) fn default_submod_path( + // Public for rustfmt usage. + pub fn default_submod_path( id: ast::Ident, relative: Option, dir_path: &Path,