diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-03-23 04:26:12 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-23 04:26:12 +0100 |
| commit | 8dda61792bc662073bee1cea6002705b1b5e0bc5 (patch) | |
| tree | bfa8b2cb0891c893127484dcc96d034763768289 | |
| parent | 08dfd1344c47c5a7e3abbee10db6d0bcfde6d107 (diff) | |
| parent | eaa0ae503fd952c7296d8787d70460fe96ccf9ee (diff) | |
| download | rust-8dda61792bc662073bee1cea6002705b1b5e0bc5.tar.gz rust-8dda61792bc662073bee1cea6002705b1b5e0bc5.zip | |
Rollup merge of #70248 - Centril:unroot, r=petrochenkov
parser: simplify & remove unused field r? @petrochenkov
| -rw-r--r-- | src/librustc_builtin_macros/source_util.rs | 4 | ||||
| -rw-r--r-- | src/librustc_expand/mbe/macro_rules.rs | 2 | ||||
| -rw-r--r-- | src/librustc_expand/module.rs | 7 | ||||
| -rw-r--r-- | src/librustc_parse/lib.rs | 23 | ||||
| -rw-r--r-- | src/librustc_parse/parser/mod.rs | 5 | ||||
| -rw-r--r-- | src/test/ui-fulldeps/mod_dir_path_canonicalized.rs | 2 |
6 files changed, 11 insertions, 32 deletions
diff --git a/src/librustc_builtin_macros/source_util.rs b/src/librustc_builtin_macros/source_util.rs index 718498f04b9..51a15f9df1b 100644 --- a/src/librustc_builtin_macros/source_util.rs +++ b/src/librustc_builtin_macros/source_util.rs @@ -6,7 +6,7 @@ use rustc_ast_pretty::pprust; use rustc_expand::base::{self, *}; use rustc_expand::module::DirectoryOwnership; use rustc_expand::panictry; -use rustc_parse::{self, new_sub_parser_from_file, parser::Parser}; +use rustc_parse::{self, new_parser_from_file, parser::Parser}; use rustc_session::lint::builtin::INCOMPLETE_INCLUDE; use rustc_span::symbol::Symbol; use rustc_span::{self, Pos, Span}; @@ -110,7 +110,7 @@ pub fn expand_include<'cx>( return DummyResult::any(sp); } }; - let p = new_sub_parser_from_file(cx.parse_sess(), &file, None, sp); + let p = new_parser_from_file(cx.parse_sess(), &file, Some(sp)); // If in the included file we have e.g., `mod bar;`, // then the path of `bar.rs` should be relative to the directory of `file`. diff --git a/src/librustc_expand/mbe/macro_rules.rs b/src/librustc_expand/mbe/macro_rules.rs index 3de2169f114..b6b69400bad 100644 --- a/src/librustc_expand/mbe/macro_rules.rs +++ b/src/librustc_expand/mbe/macro_rules.rs @@ -259,8 +259,6 @@ fn generic_extension<'cx>( } let mut p = Parser::new(sess, tts, false, None); - p.root_module_name = - cx.current_expansion.module.mod_path.last().map(|id| id.to_string()); p.last_type_ascription = cx.current_expansion.prior_type_ascription; // Let the context choose how to interpret the result. diff --git a/src/librustc_expand/module.rs b/src/librustc_expand/module.rs index 2d5e4d4e889..aad92a09743 100644 --- a/src/librustc_expand/module.rs +++ b/src/librustc_expand/module.rs @@ -1,7 +1,7 @@ use rustc_ast::ast::{self, Attribute, Ident, Mod}; use rustc_ast::{attr, token}; use rustc_errors::{struct_span_err, PResult}; -use rustc_parse::new_sub_parser_from_file; +use rustc_parse::new_parser_from_file; use rustc_session::parse::ParseSess; use rustc_span::source_map::{FileName, Span}; use rustc_span::symbol::sym; @@ -59,9 +59,8 @@ crate fn parse_external_mod( *pop_mod_stack = true; // We have pushed, so notify caller. drop(included_mod_stack); - // Actually parse the external file as amodule. - let mut p0 = new_sub_parser_from_file(sess, &mp.path, Some(id.to_string()), span); - let mut module = p0.parse_mod(&token::Eof)?; + // Actually parse the external file as a module. + let mut module = new_parser_from_file(sess, &mp.path, Some(span)).parse_mod(&token::Eof)?; module.0.inline = false; module }; diff --git a/src/librustc_parse/lib.rs b/src/librustc_parse/lib.rs index 58db7d286e7..13fb85db847 100644 --- a/src/librustc_parse/lib.rs +++ b/src/librustc_parse/lib.rs @@ -50,7 +50,7 @@ macro_rules! panictry_buffer { } pub fn parse_crate_from_file<'a>(input: &Path, sess: &'a ParseSess) -> PResult<'a, ast::Crate> { - let mut parser = new_parser_from_file(sess, input); + let mut parser = new_parser_from_file(sess, input, None); parser.parse_crate_mod() } @@ -58,7 +58,7 @@ pub fn parse_crate_attrs_from_file<'a>( input: &Path, sess: &'a ParseSess, ) -> PResult<'a, Vec<ast::Attribute>> { - let mut parser = new_parser_from_file(sess, input); + let mut parser = new_parser_from_file(sess, input, None); parser.parse_inner_attributes() } @@ -106,8 +106,9 @@ pub fn maybe_new_parser_from_source_str( } /// Creates a new parser, handling errors as appropriate if the file doesn't exist. -pub fn new_parser_from_file<'a>(sess: &'a ParseSess, path: &Path) -> Parser<'a> { - source_file_to_parser(sess, file_to_source_file(sess, path, None)) +/// If a span is given, that is used on an error as the as the source of the problem. +pub fn new_parser_from_file<'a>(sess: &'a ParseSess, path: &Path, sp: Option<Span>) -> Parser<'a> { + source_file_to_parser(sess, file_to_source_file(sess, path, sp)) } /// Creates a new parser, returning buffered diagnostics if the file doesn't exist, @@ -120,20 +121,6 @@ pub fn maybe_new_parser_from_file<'a>( maybe_source_file_to_parser(sess, file) } -/// Given a session, a crate config, a path, and a span, add -/// the file at the given path to the `source_map`, and returns a parser. -/// On an error, uses the given span as the source of the problem. -pub fn new_sub_parser_from_file<'a>( - sess: &'a ParseSess, - path: &Path, - module_name: Option<String>, - sp: Span, -) -> Parser<'a> { - let mut p = source_file_to_parser(sess, file_to_source_file(sess, path, Some(sp))); - p.root_module_name = module_name; - p -} - /// Given a `source_file` and config, returns a parser. fn source_file_to_parser(sess: &ParseSess, source_file: Lrc<SourceFile>) -> Parser<'_> { panictry_buffer!(&sess.span_diagnostic, maybe_source_file_to_parser(sess, source_file)) diff --git a/src/librustc_parse/parser/mod.rs b/src/librustc_parse/parser/mod.rs index bb6793d08aa..b987813e38d 100644 --- a/src/librustc_parse/parser/mod.rs +++ b/src/librustc_parse/parser/mod.rs @@ -88,10 +88,6 @@ pub struct Parser<'a> { /// The previous token. pub prev_token: Token, restrictions: Restrictions, - /// 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. - pub root_module_name: Option<String>, expected_tokens: Vec<TokenType>, token_cursor: TokenCursor, desugar_doc_comments: bool, @@ -350,7 +346,6 @@ impl<'a> Parser<'a> { token: Token::dummy(), prev_token: Token::dummy(), restrictions: Restrictions::empty(), - root_module_name: None, expected_tokens: Vec::new(), token_cursor: TokenCursor { frame: TokenCursorFrame::new(DelimSpan::dummy(), token::NoDelim, &tokens), diff --git a/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs b/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs index 1046355a343..3c5738f574c 100644 --- a/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs +++ b/src/test/ui-fulldeps/mod_dir_path_canonicalized.rs @@ -28,6 +28,6 @@ fn parse() { let path = Path::new(file!()); let path = path.canonicalize().unwrap(); - let mut parser = new_parser_from_file(&parse_session, &path); + let mut parser = new_parser_from_file(&parse_session, &path, None); let _ = parser.parse_crate_mod(); } |
