@@ -19,7 +19,7 @@ use rustc_middle::arena::Arena;
1919use rustc_middle:: dep_graph:: DepGraph ;
2020use rustc_middle:: ty:: { self , GlobalCtxt , RegisteredTools , TyCtxt } ;
2121use 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} ;
2323use rustc_passes:: { abi_test, hir_stats, layout_test} ;
2424use rustc_resolve:: Resolver ;
2525use rustc_session:: code_stats:: VTableSizeInfo ;
@@ -42,11 +42,14 @@ use std::{env, fs, iter};
4242use tracing:: { info, instrument} ;
4343
4444pub 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 {
0 commit comments