From a8b2382f843fe39b1fe3b9946fec7a84b06664bc Mon Sep 17 00:00:00 2001 From: Tamir Duberstein Date: Thu, 23 Apr 2015 09:33:53 -0700 Subject: [PATCH] `qquote-2.rs` -> `run-fail/qquote.rs` Re-enables the test. --- src/test/parse-fail/qquote-2.rs | 63 --------------------------------- src/test/run-fail/qquote.rs | 60 +++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 63 deletions(-) delete mode 100644 src/test/parse-fail/qquote-2.rs create mode 100644 src/test/run-fail/qquote.rs diff --git a/src/test/parse-fail/qquote-2.rs b/src/test/parse-fail/qquote-2.rs deleted file mode 100644 index ac501d31beeb..000000000000 --- a/src/test/parse-fail/qquote-2.rs +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// compile-flags: -Z parse-only - -// ignore-test Can't use syntax crate here - -#![feature(quote)] - -extern crate syntax; - -use syntax::diagnostic; -use syntax::ast; -use syntax::codemap; -use syntax::parse::parser; -use syntax::print::*; - -trait fake_ext_ctxt { - fn cfg() -> ast::CrateConfig; - fn parse_sess() -> parse::parse_sess; - fn call_site() -> span; - fn ident_of(st: &str) -> ast::ident; -} - -type fake_session = parse::parse_sess; - -impl fake_ext_ctxt for fake_session { - fn cfg() -> ast::CrateConfig { Vec::new() } - fn parse_sess() -> parse::parse_sess { self } - fn call_site() -> span { - codemap::span { - lo: codemap::BytePos(0), - hi: codemap::BytePos(0), - expn_id: codemap::NO_EXPANSION - } - } - fn ident_of(st: &str) -> ast::ident { - self.interner.intern(st) - } -} - -fn mk_ctxt() -> fake_ext_ctxt { - parse::new_parse_sess(None) as fake_ext_ctxt -} - - -fn main() { - let cx = mk_ctxt(); - - let stmt = quote_stmt!(cx, let x isize = 20;); //~ ERROR expected end-of-string - check_pp(*stmt, pprust::print_stmt, ""); -} - -fn check_pp(expr: T, f: |pprust::ps, T|, expect: str) { - panic!(); -} diff --git a/src/test/run-fail/qquote.rs b/src/test/run-fail/qquote.rs new file mode 100644 index 000000000000..76678ca45374 --- /dev/null +++ b/src/test/run-fail/qquote.rs @@ -0,0 +1,60 @@ +// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// ignore-cross-compile + +// error-pattern:expected identifier, found keyword `let` + +#![feature(quote, rustc_private)] + +extern crate syntax; + +use syntax::ast; +use syntax::codemap; +use syntax::parse; +use syntax::print::pprust; + +trait FakeExtCtxt { + fn call_site(&self) -> codemap::Span; + fn cfg(&self) -> ast::CrateConfig; + fn ident_of(&self, st: &str) -> ast::Ident; + fn name_of(&self, st: &str) -> ast::Name; + fn parse_sess(&self) -> &parse::ParseSess; +} + +impl FakeExtCtxt for parse::ParseSess { + fn call_site(&self) -> codemap::Span { + codemap::Span { + lo: codemap::BytePos(0), + hi: codemap::BytePos(0), + expn_id: codemap::NO_EXPANSION, + } + } + fn cfg(&self) -> ast::CrateConfig { Vec::new() } + fn ident_of(&self, st: &str) -> ast::Ident { + parse::token::str_to_ident(st) + } + fn name_of(&self, st: &str) -> ast::Name { + parse::token::intern(st) + } + fn parse_sess(&self) -> &parse::ParseSess { self } +} + +fn main() { + let cx = parse::new_parse_sess(); + + quote_expr!(&cx, 23).and_then(|expr| { + assert_eq!(pprust::expr_to_string(&expr), "23") + }); + + quote_expr!(&cx, let x isize = 20;).and_then(|expr| { + assert_eq!(pprust::expr_to_string(&expr), "let x isize = 20;") + }); +}