@@ -37,19 +37,19 @@ extern crate rustc_parse;
37
37
extern crate rustc_session;
38
38
extern crate rustc_span;
39
39
40
+ #[ path = "auxiliary/parser.rs" ]
41
+ mod parser;
42
+
40
43
use std:: mem;
41
44
use std:: process:: ExitCode ;
42
45
43
- use rustc_ast:: ast:: { DUMMY_NODE_ID , Expr , ExprKind } ;
46
+ use rustc_ast:: ast:: { Expr , ExprKind } ;
44
47
use rustc_ast:: mut_visit:: { self , DummyAstNode as _, MutVisitor } ;
45
- use rustc_ast:: node_id:: NodeId ;
46
48
use rustc_ast:: ptr:: P ;
47
- use rustc_ast:: token;
48
49
use rustc_ast_pretty:: pprust;
49
- use rustc_errors:: Diag ;
50
- use rustc_parse:: parser:: Recovery ;
51
50
use rustc_session:: parse:: ParseSess ;
52
- use rustc_span:: { DUMMY_SP , FileName , Span } ;
51
+
52
+ use crate :: parser:: parse_expr;
53
53
54
54
// Every parenthesis in the following expressions is re-inserted by the
55
55
// pretty-printer.
@@ -155,39 +155,6 @@ impl MutVisitor for Unparenthesize {
155
155
}
156
156
}
157
157
158
- // Erase Span information that could distinguish between identical expressions
159
- // parsed from different source strings.
160
- struct Normalize ;
161
-
162
- impl MutVisitor for Normalize {
163
- const VISIT_TOKENS : bool = true ;
164
-
165
- fn visit_id ( & mut self , id : & mut NodeId ) {
166
- * id = DUMMY_NODE_ID ;
167
- }
168
-
169
- fn visit_span ( & mut self , span : & mut Span ) {
170
- * span = DUMMY_SP ;
171
- }
172
- }
173
-
174
- fn parse_expr ( psess : & ParseSess , source_code : & str ) -> Option < P < Expr > > {
175
- let parser = rustc_parse:: unwrap_or_emit_fatal ( rustc_parse:: new_parser_from_source_str (
176
- psess,
177
- FileName :: anon_source_code ( source_code) ,
178
- source_code. to_owned ( ) ,
179
- ) ) ;
180
-
181
- let mut parser = parser. recovery ( Recovery :: Forbidden ) ;
182
- let mut expr = parser. parse_expr ( ) . map_err ( Diag :: cancel) . ok ( ) ?;
183
- if parser. token != token:: Eof {
184
- return None ;
185
- }
186
-
187
- Normalize . visit_expr ( & mut expr) ;
188
- Some ( expr)
189
- }
190
-
191
158
fn main ( ) -> ExitCode {
192
159
let mut status = ExitCode :: SUCCESS ;
193
160
let mut fail = |description : & str , before : & str , after : & str | {
0 commit comments