提交 c2e26972 编写于 作者: K Keegan McAllister

Un-gate macro_rules

上级 d0163d33
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(globs, plugin, macro_rules)]
#![feature(globs, plugin)]
extern crate syntax;
extern crate rustc;
......
......@@ -7,7 +7,7 @@
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(globs, unsafe_destructor, macro_rules, slicing_syntax, default_type_params)]
#![feature(globs, unsafe_destructor, slicing_syntax, default_type_params)]
#![feature(unboxed_closures)]
extern crate core;
......
......@@ -23,7 +23,7 @@
html_root_url = "http://doc.rust-lang.org/nightly/",
html_playground_url = "http://play.rust-lang.org/")]
#![feature(macro_rules, globs, slicing_syntax)]
#![feature(globs, slicing_syntax)]
#![feature(associated_types)]
pub use self::Piece::*;
......
......@@ -37,7 +37,7 @@
// if you change this list without updating src/doc/reference.md, @cmr will be sad
static KNOWN_FEATURES: &'static [(&'static str, Status)] = &[
("globs", Active),
("macro_rules", Active),
("macro_rules", Accepted),
("struct_variant", Accepted),
("asm", Active),
("managed_boxes", Removed),
......@@ -169,12 +169,7 @@ fn visit_mac(&mut self, mac: &ast::Mac) {
let ast::MacInvocTT(ref path, _, _) = mac.node;
let id = path.segments.last().unwrap().identifier;
if id == token::str_to_ident("macro_rules") {
self.context.gate_feature("macro_rules", path.span, "macro definitions are \
not stable enough for use and are subject to change");
}
else if id == token::str_to_ident("asm") {
if id == token::str_to_ident("asm") {
self.context.gate_feature("asm", path.span, "inline assembly is not \
stable enough for use and is subject to change");
}
......
......@@ -32,7 +32,7 @@
html_root_url = "http://doc.rust-lang.org/nightly/")]
#![allow(unknown_features)]
#![feature(asm, macro_rules, globs, slicing_syntax)]
#![feature(asm, globs, slicing_syntax)]
#![feature(unboxed_closures, default_type_params)]
#![feature(old_orphan_check)]
......
......@@ -10,8 +10,6 @@
#![crate_name="lint_stability"]
#![crate_type = "lib"]
#![feature(macro_rules)]
#[deprecated]
pub fn deprecated() {}
#[deprecated="text"]
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
#[macro_export]
macro_rules! make_a_5 {
() => (5)
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
pub fn increment(x: uint) -> uint {
x + 1
}
......
......@@ -10,7 +10,7 @@
// force-host
#![feature(globs, plugin_registrar, macro_rules, quote)]
#![feature(globs, plugin_registrar, quote)]
extern crate syntax;
extern crate rustc;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
pub mod inner {
#[macro_export]
macro_rules! foo {
......
......@@ -9,8 +9,6 @@
// except according to those terms.
#![crate_type = "dylib"]
#![feature(macro_rules)]
#[macro_export]
macro_rules! reexported {
() => ( 3u )
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -13,8 +13,6 @@
//! should not affect the strict version hash (SVH) computation
//! (#14132).
#![feature(macro_rules)]
#![crate_name = "a"]
macro_rules! three {
......
......@@ -10,8 +10,6 @@
// force-host
#![feature(macro_rules)]
#[macro_export]
macro_rules! macro_one { () => ("one") }
......
......@@ -11,7 +11,6 @@
// ignore-lexer-test FIXME #15679
// Microbenchmarks for various functions in std and extra
#![feature(macro_rules)]
#![feature(unboxed_closures)]
use std::io::File;
......
......@@ -38,7 +38,6 @@
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
// OF THE POSSIBILITY OF SUCH DAMAGE.
#![feature(macro_rules)]
#![feature(simd)]
#![allow(experimental)]
......
......@@ -41,7 +41,7 @@
// ignore-stage1
// ignore-cross-compile #12102
#![feature(macro_rules, plugin, slicing_syntax)]
#![feature(plugin, slicing_syntax)]
extern crate regex;
......
......@@ -11,8 +11,6 @@
// Test that the borrow checker prevents pointers to temporaries
// with statement lifetimes from escaping.
#![feature(macro_rules)]
use std::ops::Drop;
static mut FLAGS: u64 = 0;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
static A: uint = { 1u; 2 };
//~^ ERROR: blocks in constants are limited to items and tail expressions
......
// Copyright 2013 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 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
macro_rules! foo { () => () }
//~^ ERROR: macro definitions are not stable enough for use
fn main() {}
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo {
() => { break 'x; }
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo {
($e: expr) => { 'x: loop { $e } }
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo {
() => { break 'x; }
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo {
($e: expr) => { 'x: for _ in range(0,1) { $e } }
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
fn macros() {
macro_rules! foo{
($p:pat, $e:expr, $b:block) => {{
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! recursive {
() => (recursive!()) //~ ERROR recursion limit reached while expanding the macro `recursive`
}
......
......@@ -13,8 +13,6 @@
// error-pattern:
#![feature(macro_rules)]
macro_rules! foo{
() => {{
macro_rules! bar{() => (())}
......
......@@ -15,8 +15,6 @@
// ignore-test
#![feature(macro_rules)]
macro_rules! f { () => (n) }
fn main() -> (){
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! prob1 {
(0) => {
0
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
// error-pattern: unexpected token
macro_rules! e {
......
......@@ -11,8 +11,6 @@
#![allow(unused_unsafe)]
#![allow(dead_code)]
#![deny(unsafe_blocks)]
#![feature(macro_rules)]
unsafe fn allowed() {}
#[allow(unsafe_blocks)] fn also_allowed() { unsafe {} }
......
......@@ -10,8 +10,6 @@
//
// regression test for #8005
#![feature(macro_rules)]
macro_rules! test { () => { fn foo() -> int { 1i; } } }
//~^ ERROR not all control paths return a value
//~^^ HELP consider removing this semicolon
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! ignored_item {
() => {
fn foo() {}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! test { ($nm:ident,
#[$a:meta],
$i:item) => (mod $nm { #![$a] $i }); }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! test { ($a, $b) => (()); } //~ ERROR Cannot transcribe
fn main() {
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! test { ($nm:ident,
#[$a:meta],
$i:item) => (mod $nm { #[$a] $i }); }
......
......@@ -10,8 +10,6 @@
// forbid-output: in expansion of
#![feature(macro_rules)]
macro_rules! make_method {
($name:ident) => ( fn $name(&self) { } )
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo { () => ( x ) }
fn main() {
......
......@@ -12,7 +12,6 @@
// deeply nested types that will fail the `Send` check by overflow
// when the recursion limit is set very low.
#![feature(macro_rules)]
#![allow(dead_code)]
#![recursion_limit="10"]
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-lit.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-significant-cfg.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-trait-bound.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-type-arg.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-type-ret.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-change-type-static.rs
#![feature(macro_rules)]
extern crate a;
extern crate b; //~ ERROR: found possibly newer version of crate `a` which `b` depends on
//~^ NOTE: perhaps this crate needs to be recompiled
......
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules, trace_macros)]
#![feature(trace_macros)]
fn main() {
trace_macros!(); //~ ERROR trace_macros! accepts only `true` or `false`
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
fn macros() {
macro_rules! foo{
($p:pat, $e:expr, $b:block) => {{
......
......@@ -111,7 +111,6 @@
// lldb-command:continue
#![feature(macro_rules)]
#![omit_gdb_pretty_printer_section]
macro_rules! trivial {
......
......@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
// minimal junk
#![no_std]
......
......@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
// minimal junk
#![no_std]
......
......@@ -11,8 +11,6 @@
// Check that we do not ICE when compiling this
// macro, which reuses the expression `$id`
#![feature(macro_rules)]
struct Foo {
a: int
......
......@@ -13,8 +13,6 @@
// check that cfg correctly chooses between the macro impls (see also
// cfg-macros-notfoo.rs)
#![feature(macro_rules)]
#[cfg(foo)]
#[macro_use]
mod foo {
......
......@@ -13,8 +13,6 @@
// check that cfg correctly chooses between the macro impls (see also
// cfg-macros-foo.rs)
#![feature(macro_rules)]
#[cfg(foo)]
#[macro_use]
mod foo {
......
......@@ -11,8 +11,6 @@
// Test that the lifetime of rvalues in for loops is extended
// to the for loop itself.
#![feature(macro_rules)]
use std::ops::Drop;
static mut FLAGS: u64 = 0;
......
......@@ -12,8 +12,6 @@
// statement or end of block, as appropriate given the temporary
// lifetime rules.
#![feature(macro_rules)]
use std::ops::Drop;
static mut FLAGS: u64 = 0;
......
......@@ -11,8 +11,6 @@
// no-pretty-expanded
#![allow(unused_must_use, dead_code, deprecated)]
#![feature(macro_rules)]
use std::io::MemWriter;
use std::fmt;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! assert_approx_eq {
($a:expr, $b:expr) => ({
use std::num::Float;
......
......@@ -11,8 +11,6 @@
// General test that function items in static blocks
// can be generated with a macro.
#![feature(macro_rules)]
struct MyType {
desc: &'static str,
data: uint,
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
mod foo {
pub trait Value {
fn value(&self) -> uint;
......
......@@ -15,7 +15,6 @@
// memory, which makes for some *confusing* logs. That's why these are here
// instead of in std.
#![feature(macro_rules)]
#![reexport_test_harness_main = "test_main"]
extern crate libc;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! define_vec {
() => (
mod foo {
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
#[derive(Show)]
struct Unit;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! check {
($m:ident, $t:ty, $v:expr) => {{
mod $m {
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::num::strconv::ExponentFormat::{ExpBin, ExpDec};
use std::num::strconv::SignificantDigits::DigMax;
use std::num::strconv::SignFormat::{SignAll, SignNeg};
......
......@@ -10,8 +10,6 @@
// A test of the macro system. Can we do HTML literals?
#![feature(macro_rules)]
/*
......
......@@ -10,8 +10,6 @@
// ignore-pretty: pprust doesn't print hygiene output
#![feature(macro_rules)]
macro_rules! loop_x {
($e: expr) => {
// $e shouldn't be able to interact with this 'x
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! loop_x {
($e: expr) => {
// $e shouldn't be able to interact with this 'x
......
......@@ -11,7 +11,6 @@
// no-pretty-expanded unnecessary unsafe block generated
// ignore-lexer-test FIXME #15679
#![feature(macro_rules)]
#![deny(warnings)]
#![allow(unused_must_use)]
......
......@@ -9,7 +9,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(globs, macro_rules, intrinsics)]
#![feature(globs, intrinsics)]
macro_rules! assert_approx_eq {
($a:expr, $b:expr) => ({
......
......@@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(asm, macro_rules)]
#![feature(asm)]
type History = Vec<&'static str>;
......
......@@ -10,8 +10,6 @@
// ignore-pretty
#![feature(macro_rules)]
macro_rules! third {
($e:expr) => ({let x = 2; $e[x]})
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! inner {
($e:pat ) => ($e)
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! print_hd_tl {
($field_hd:ident, $($field_tl:ident),+) => ({
print!("{}", stringify!($field_hd));
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::default::Default;
pub struct X<T> {
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
struct Element;
macro_rules! foo {
......
......@@ -14,8 +14,6 @@
// with different mutability in macro in two methods
#![allow(unused_variable)] // unused foobar_immut + foobar_mut
#![feature(macro_rules)]
trait FooBar {}
struct Bar(i32);
struct Foo { bar: Bar }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! sty {
($t:ty) => (stringify!($t))
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
// after fixing #9384 and implementing hygiene for match bindings,
// this now fails because the insertion of the 'y' into the match
// doesn't cause capture. Making this macro hygienic (as I've done)
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! silly_macro {
() => (
pub mod Qux {
......
......@@ -10,8 +10,6 @@
// ignore-pretty
#![feature(macro_rules)]
pub trait bomb { fn boom(&self, Ident); }
pub struct S;
......
......@@ -10,8 +10,6 @@
// ignore-test #9737
#![feature(macro_rules)]
macro_rules! f {
(v: $x:expr) => ( println!("{}", $x) )
}
......
......@@ -10,8 +10,6 @@
// ignore-test #9383
#![feature(macro_rules)]
// shouldn't affect evaluation of $ex:
macro_rules! bad_macro {
($ex:expr) => ({(|_x| { $ex }) (9) })
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
// shouldn't affect evaluation of $ex:
macro_rules! bad_macro {
($ex:expr) => ({let _x = 9i; $ex})
......
......@@ -10,8 +10,6 @@
// ignore-pretty - token trees can't pretty print
#![feature(macro_rules)]
pub fn main() {
macro_rules! mylambda_tt {
......
......@@ -10,8 +10,6 @@
// ignore-pretty - token trees can't pretty print
#![feature(macro_rules)]
macro_rules! descriptions {
($name:ident is $desc:expr) => {
// Check that we will correctly expand attributes
......
......@@ -10,8 +10,6 @@
// ignore-pretty - token trees can't pretty print
#![feature(macro_rules)]
macro_rules! compiles_fine {
(#[$at:meta]) => {
// test that the different types of attributes work
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! do_block{
($val:block) => {$val}
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
pub fn increment(x: uint) -> uint {
x + 1
}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! foo2 {
() => {
"foo"
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! overly_complicated {
($fnname:ident, $arg:ident, $ty:ty, $body:block, $val:expr, $pat:pat, $res:path) =>
({
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! four {
() => (4)
}
......
......@@ -11,8 +11,6 @@
// ignore-pretty - token trees can't pretty print
// compile-flags: --cfg foo
#![feature(macro_rules)]
macro_rules! compiles_fine {
($at:meta) => {
#[cfg($at)]
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
struct A;
macro_rules! make_thirteen_method {() => (fn thirteen(&self)->int {13})}
......
......@@ -10,8 +10,6 @@
// ignore-pretty - token trees can't pretty print
#![feature(macro_rules)]
macro_rules! make_foo {
() => (
struct Foo;
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! list {
( ($($id:ident),*) ) => (());
( [$($id:ident),*] ) => (());
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! higher_order {
(subst $lhs:tt => $rhs:tt) => ({
macro_rules! anon { $lhs => $rhs }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! mypat {
() => (
Some('y')
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
mod m {
pub type t = int;
}
......
......@@ -10,8 +10,6 @@
// ignore-pretty - token trees can't pretty print
#![feature(macro_rules)]
macro_rules! myfn {
( $f:ident, ( $( $x:ident ),* ), $body:block ) => (
fn $f( $( $x : int),* ) -> int $body
......
......@@ -10,8 +10,6 @@
// compile-flags: --cfg foo
#![feature(macro_rules)]
#[cfg(foo)]
macro_rules! foo { () => (1i) }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
#[cfg(foo)]
macro_rules! foo { () => (1i) }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::thread::Thread;
macro_rules! expr { ($e: expr) => { $e } }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
enum Foo {
B { b1: int, bb1: int},
}
......
......@@ -10,8 +10,6 @@
// ignore-test #9384
#![feature(macro_rules)]
// shouldn't affect evaluation of $ex.
macro_rules! bad_macro { ($ex:expr) => (
{match 9 {_x => $ex}}
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! quote_tokens { () => (()) }
pub fn main() {
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::{option, mem};
// Iota-reduction is a rule in the Calculus of (Co-)Inductive Constructions,
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::mem;
enum E<T> { Thing(int, T), Nothing((), ((), ()), [i8; 0]) }
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
use std::mem::size_of;
#[derive(PartialEq, Show)]
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-comment.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-doc.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-macro.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-no-change.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-redundant-cfg.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -13,8 +13,6 @@
// aux-build:svh-b.rs
// aux-build:svh-a-whitespace.rs
#![feature(macro_rules)]
extern crate a;
extern crate b;
......
......@@ -11,8 +11,6 @@
// This test is brittle!
// ignore-pretty - the pretty tests lose path information, breaking include!
#![feature(macro_rules)]
pub mod m1 {
pub mod m2 {
pub fn where_am_i() -> String {
......@@ -24,9 +22,9 @@ pub fn where_am_i() -> String {
macro_rules! indirect_line { () => ( line!() ) }
pub fn main() {
assert_eq!(line!(), 27);
assert_eq!(line!(), 25);
//assert!((column!() == 11));
assert_eq!(indirect_line!(), 29);
assert_eq!(indirect_line!(), 27);
assert!((file!().ends_with("syntax-extension-source-utils.rs")));
assert_eq!(stringify!((2*3) + 5).to_string(), "( 2 * 3 ) + 5".to_string());
assert!(include!("syntax-extension-source-utils-files/includeme.\
......@@ -44,7 +42,7 @@ pub fn main() {
// The Windows tests are wrapped in an extra module for some reason
assert!((m1::m2::where_am_i().as_slice().ends_with("m1::m2")));
assert!(match (47, "( 2 * 3 ) + 5") {
assert!(match (45, "( 2 * 3 ) + 5") {
(line!(), stringify!((2*3) + 5)) => true,
_ => false
})
......
......@@ -16,7 +16,7 @@
// one test task to ensure that errors are timeouts, not file descriptor
// exhaustion.
#![feature(macro_rules, globs)]
#![feature(globs)]
#![allow(experimental)]
#![reexport_test_harness_main = "test_main"]
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
enum T {
A(int),
B(f64)
......
......@@ -8,8 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(macro_rules)]
macro_rules! vec [
($($e:expr),*) => ({
let mut _temp = ::std::vec::Vec::new();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册