1
Fork 0

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.
This commit is contained in:
Nicholas Nethercote 2024-05-31 13:56:44 +10:00
parent 8964106e44
commit 25972aec67
4 changed files with 16 additions and 40 deletions

View file

@ -19,7 +19,7 @@ use rustc_middle::arena::Arena;
use rustc_middle::dep_graph::DepGraph;
use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, TyCtxt};
use rustc_middle::util::Providers;
use rustc_parse::{parse_crate_from_file, parse_crate_from_source_str, validate_attr};
use rustc_parse::{new_parser_from_file, new_parser_from_source_str, validate_attr};
use rustc_passes::{abi_test, hir_stats, layout_test};
use rustc_resolve::Resolver;
use rustc_session::code_stats::VTableSizeInfo;
@ -42,11 +42,14 @@ use std::{env, fs, iter};
use tracing::{info, instrument};
pub fn parse<'a>(sess: &'a Session) -> PResult<'a, ast::Crate> {
let krate = sess.time("parse_crate", || match &sess.io.input {
Input::File(file) => parse_crate_from_file(file, &sess.psess),
Input::Str { input, name } => {
parse_crate_from_source_str(name.clone(), input.clone(), &sess.psess)
}
let krate = sess.time("parse_crate", || {
let mut parser = match &sess.io.input {
Input::File(file) => new_parser_from_file(&sess.psess, file, None),
Input::Str { input, name } => {
new_parser_from_source_str(&sess.psess, name.clone(), input.clone())
}
};
parser.parse_crate_mod()
})?;
if sess.opts.unstable_opts.input_stats {