Skip to content

Commit aef3300

Browse files
committed
Inline and remove parse_crate{,_attrs}_from_{file,source_str}.
All four functions are simple and have a single call site. This requires making `Parser::parse_inner_attributes` public, which is no big deal.
1 parent 6e95819 commit aef3300

File tree

4 files changed

+16
-40
lines changed

4 files changed

+16
-40
lines changed

compiler/rustc_driver_impl/src/lib.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use rustc_interface::{interface, Queries};
3232
use rustc_lint::unerased_lint_store;
3333
use rustc_metadata::creader::MetadataLoader;
3434
use rustc_metadata::locator;
35+
use rustc_parse::{new_parser_from_file, new_parser_from_source_str};
3536
use rustc_session::config::{nightly_options, CG_OPTIONS, Z_OPTIONS};
3637
use rustc_session::config::{ErrorOutputType, Input, OutFileName, OutputType};
3738
use rustc_session::getopts::{self, Matches};
@@ -1260,12 +1261,13 @@ pub fn handle_options(early_dcx: &EarlyDiagCtxt, args: &[String]) -> Option<geto
12601261
}
12611262

12621263
fn parse_crate_attrs<'a>(sess: &'a Session) -> PResult<'a, ast::AttrVec> {
1263-
match &sess.io.input {
1264-
Input::File(ifile) => rustc_parse::parse_crate_attrs_from_file(ifile, &sess.psess),
1264+
let mut parser = match &sess.io.input {
1265+
Input::File(file) => new_parser_from_file(&sess.psess, file, None),
12651266
Input::Str { name, input } => {
1266-
rustc_parse::parse_crate_attrs_from_source_str(name.clone(), input.clone(), &sess.psess)
1267+
new_parser_from_source_str(&sess.psess, name.clone(), input.clone())
12671268
}
1268-
}
1269+
};
1270+
parser.parse_inner_attributes()
12691271
}
12701272

12711273
/// Runs a closure and catches unwinds triggered by fatal errors.

compiler/rustc_interface/src/passes.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use rustc_middle::arena::Arena;
1919
use rustc_middle::dep_graph::DepGraph;
2020
use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, TyCtxt};
2121
use rustc_middle::util::Providers;
22-
use rustc_parse::{parse_crate_from_file, parse_crate_from_source_str, validate_attr};
22+
use rustc_parse::{new_parser_from_file, new_parser_from_source_str, validate_attr};
2323
use rustc_passes::{abi_test, hir_stats, layout_test};
2424
use rustc_resolve::Resolver;
2525
use rustc_session::code_stats::VTableSizeInfo;
@@ -42,11 +42,14 @@ use std::{env, fs, iter};
4242
use tracing::{info, instrument};
4343

4444
pub fn parse<'a>(sess: &'a Session) -> PResult<'a, ast::Crate> {
45-
let krate = sess.time("parse_crate", || match &sess.io.input {
46-
Input::File(file) => parse_crate_from_file(file, &sess.psess),
47-
Input::Str { input, name } => {
48-
parse_crate_from_source_str(name.clone(), input.clone(), &sess.psess)
49-
}
45+
let krate = sess.time("parse_crate", || {
46+
let mut parser = match &sess.io.input {
47+
Input::File(file) => new_parser_from_file(&sess.psess, file, None),
48+
Input::Str { input, name } => {
49+
new_parser_from_source_str(&sess.psess, name.clone(), input.clone())
50+
}
51+
};
52+
parser.parse_crate_mod()
5053
})?;
5154

5255
if sess.opts.unstable_opts.input_stats {

compiler/rustc_parse/src/lib.rs

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -47,35 +47,6 @@ fn unwrap_or_emit_fatal<T>(expr: Result<T, Vec<Diag<'_>>>) -> T {
4747
}
4848
}
4949

50-
pub fn parse_crate_from_file<'a>(input: &Path, psess: &'a ParseSess) -> PResult<'a, ast::Crate> {
51-
let mut parser = new_parser_from_file(psess, input, None);
52-
parser.parse_crate_mod()
53-
}
54-
55-
pub fn parse_crate_attrs_from_file<'a>(
56-
input: &Path,
57-
psess: &'a ParseSess,
58-
) -> PResult<'a, ast::AttrVec> {
59-
let mut parser = new_parser_from_file(psess, input, None);
60-
parser.parse_inner_attributes()
61-
}
62-
63-
pub fn parse_crate_from_source_str(
64-
name: FileName,
65-
source: String,
66-
psess: &ParseSess,
67-
) -> PResult<'_, ast::Crate> {
68-
new_parser_from_source_str(psess, name, source).parse_crate_mod()
69-
}
70-
71-
pub fn parse_crate_attrs_from_source_str(
72-
name: FileName,
73-
source: String,
74-
psess: &ParseSess,
75-
) -> PResult<'_, ast::AttrVec> {
76-
new_parser_from_source_str(psess, name, source).parse_inner_attributes()
77-
}
78-
7950
/// Creates a new parser from a source string.
8051
pub fn new_parser_from_source_str(psess: &ParseSess, name: FileName, source: String) -> Parser<'_> {
8152
unwrap_or_emit_fatal(maybe_new_parser_from_source_str(psess, name, source))

compiler/rustc_parse/src/parser/attr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ impl<'a> Parser<'a> {
265265
/// terminated by a semicolon.
266266
///
267267
/// Matches `inner_attrs*`.
268-
pub(crate) fn parse_inner_attributes(&mut self) -> PResult<'a, ast::AttrVec> {
268+
pub fn parse_inner_attributes(&mut self) -> PResult<'a, ast::AttrVec> {
269269
let mut attrs = ast::AttrVec::new();
270270
loop {
271271
let start_pos: u32 = self.num_bump_calls.try_into().unwrap();

0 commit comments

Comments
 (0)