Switch pretty-printer roundtrip test to better parser
This commit is contained in:
parent
65ba6ac9a3
commit
822e8063fd
1 changed files with 4 additions and 14 deletions
|
@ -1,5 +1,7 @@
|
||||||
//@ run-pass
|
//@ run-pass
|
||||||
//@ ignore-cross-compile
|
//@ ignore-cross-compile
|
||||||
|
//@ aux-crate: parser=parser.rs
|
||||||
|
//@ edition: 2021
|
||||||
|
|
||||||
// The general idea of this test is to enumerate all "interesting" expressions and check that
|
// The general idea of this test is to enumerate all "interesting" expressions and check that
|
||||||
// `parse(print(e)) == e` for all `e`. Here's what's interesting, for the purposes of this test:
|
// `parse(print(e)) == e` for all `e`. Here's what's interesting, for the purposes of this test:
|
||||||
|
@ -21,7 +23,6 @@
|
||||||
|
|
||||||
extern crate rustc_ast;
|
extern crate rustc_ast;
|
||||||
extern crate rustc_ast_pretty;
|
extern crate rustc_ast_pretty;
|
||||||
extern crate rustc_data_structures;
|
|
||||||
extern crate rustc_parse;
|
extern crate rustc_parse;
|
||||||
extern crate rustc_session;
|
extern crate rustc_session;
|
||||||
extern crate rustc_span;
|
extern crate rustc_span;
|
||||||
|
@ -32,28 +33,17 @@ extern crate thin_vec;
|
||||||
#[allow(unused_extern_crates)]
|
#[allow(unused_extern_crates)]
|
||||||
extern crate rustc_driver;
|
extern crate rustc_driver;
|
||||||
|
|
||||||
|
use parser::parse_expr;
|
||||||
use rustc_ast::mut_visit::{visit_clobber, MutVisitor};
|
use rustc_ast::mut_visit::{visit_clobber, MutVisitor};
|
||||||
use rustc_ast::ptr::P;
|
use rustc_ast::ptr::P;
|
||||||
use rustc_ast::*;
|
use rustc_ast::*;
|
||||||
use rustc_ast_pretty::pprust;
|
use rustc_ast_pretty::pprust;
|
||||||
use rustc_parse::{new_parser_from_source_str, unwrap_or_emit_fatal};
|
|
||||||
use rustc_session::parse::ParseSess;
|
use rustc_session::parse::ParseSess;
|
||||||
use rustc_span::source_map::Spanned;
|
use rustc_span::source_map::Spanned;
|
||||||
use rustc_span::symbol::Ident;
|
use rustc_span::symbol::Ident;
|
||||||
use rustc_span::{FileName, DUMMY_SP};
|
use rustc_span::DUMMY_SP;
|
||||||
use thin_vec::{thin_vec, ThinVec};
|
use thin_vec::{thin_vec, ThinVec};
|
||||||
|
|
||||||
fn parse_expr(psess: &ParseSess, src: &str) -> Option<P<Expr>> {
|
|
||||||
let src_as_string = src.to_string();
|
|
||||||
|
|
||||||
let mut p = unwrap_or_emit_fatal(new_parser_from_source_str(
|
|
||||||
psess,
|
|
||||||
FileName::Custom(src_as_string.clone()),
|
|
||||||
src_as_string,
|
|
||||||
));
|
|
||||||
p.parse_expr().map_err(|e| e.cancel()).ok()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helper functions for building exprs
|
// Helper functions for building exprs
|
||||||
fn expr(kind: ExprKind) -> P<Expr> {
|
fn expr(kind: ExprKind) -> P<Expr> {
|
||||||
P(Expr { id: DUMMY_NODE_ID, kind, span: DUMMY_SP, attrs: AttrVec::new(), tokens: None })
|
P(Expr { id: DUMMY_NODE_ID, kind, span: DUMMY_SP, attrs: AttrVec::new(), tokens: None })
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue