2222extern crate rustc_ast;
2323extern crate rustc_ast_pretty;
2424extern crate rustc_data_structures;
25+ extern crate rustc_errors;
2526extern crate rustc_parse;
2627extern crate rustc_session;
2728extern crate rustc_span;
@@ -32,27 +33,20 @@ extern crate thin_vec;
3233#[ allow( unused_extern_crates) ]
3334extern crate rustc_driver;
3435
36+ #[ path = "auxiliary/parser.rs" ]
37+ mod parser;
38+
3539use rustc_ast:: mut_visit:: { visit_clobber, MutVisitor } ;
3640use rustc_ast:: ptr:: P ;
3741use rustc_ast:: * ;
3842use rustc_ast_pretty:: pprust;
39- use rustc_parse:: { new_parser_from_source_str, unwrap_or_emit_fatal} ;
4043use rustc_session:: parse:: ParseSess ;
4144use rustc_span:: source_map:: Spanned ;
4245use rustc_span:: symbol:: Ident ;
43- use rustc_span:: { FileName , DUMMY_SP } ;
46+ use rustc_span:: DUMMY_SP ;
4447use thin_vec:: { thin_vec, ThinVec } ;
4548
46- fn parse_expr ( psess : & ParseSess , src : & str ) -> Option < P < Expr > > {
47- let src_as_string = src. to_string ( ) ;
48-
49- let mut p = unwrap_or_emit_fatal ( new_parser_from_source_str (
50- psess,
51- FileName :: Custom ( src_as_string. clone ( ) ) ,
52- src_as_string,
53- ) ) ;
54- p. parse_expr ( ) . map_err ( |e| e. cancel ( ) ) . ok ( )
55- }
49+ use crate :: parser:: parse_expr;
5650
5751// Helper functions for building exprs
5852fn expr ( kind : ExprKind ) -> P < Expr > {
0 commit comments