From 72b698247a69e186c82a375b9fba3591e45d3109 Mon Sep 17 00:00:00 2001 From: John Clements Date: Fri, 20 Sep 2013 23:37:19 -0700 Subject: [PATCH 1/2] added xfailed tests for two other flavors of var hygiene --- src/test/run-pass/lambda-var-hygiene.rs | 23 +++++++++++++++++++++++ src/test/run-pass/match-var-hygiene.rs | 24 ++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/test/run-pass/lambda-var-hygiene.rs create mode 100644 src/test/run-pass/match-var-hygiene.rs diff --git a/src/test/run-pass/lambda-var-hygiene.rs b/src/test/run-pass/lambda-var-hygiene.rs new file mode 100644 index 0000000000000..5dfc4208554b1 --- /dev/null +++ b/src/test/run-pass/lambda-var-hygiene.rs @@ -0,0 +1,23 @@ +// Copyright 2012 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-test #9383 + +#![feature(macro_rules)] + +// shouldn't affect evaluation of $ex: +macro_rules! bad_macro (($ex:expr) => ({(|_x| { $ex }) (9) })) + +fn takes_x(_x : int) { + assert_eq!(bad_macro!(_x),8); +} +fn main() { + takes_x(8); +} diff --git a/src/test/run-pass/match-var-hygiene.rs b/src/test/run-pass/match-var-hygiene.rs new file mode 100644 index 0000000000000..482fdf5b1d040 --- /dev/null +++ b/src/test/run-pass/match-var-hygiene.rs @@ -0,0 +1,24 @@ +// Copyright 2012 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-test #9384 + +#![feature(macro_rules)] + +// shouldn't affect evaluation of $ex. +macro_rules! bad_macro (($ex:expr) => ( + {match 9 {_x => $ex}} +)) + +fn main() { + match 8 { + _x => assert_eq!(bad_macro!(_x),8) + } +} From 864dcde76bfb3e91ae59903ea3d0e45ab2584892 Mon Sep 17 00:00:00 2001 From: John Clements Date: Fri, 22 Nov 2013 13:43:22 -0800 Subject: [PATCH 2/2] added xfailed test for issue 9737 --- src/test/run-pass/issue-9737.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/test/run-pass/issue-9737.rs diff --git a/src/test/run-pass/issue-9737.rs b/src/test/run-pass/issue-9737.rs new file mode 100644 index 0000000000000..02d730889a71c --- /dev/null +++ b/src/test/run-pass/issue-9737.rs @@ -0,0 +1,20 @@ +// Copyright 2012 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-test #9737 + +#![feature(macro_rules)] + +macro_rules! f((v: $x:expr) => ( println!("{:?}", $x) )) + +fn main () { + let v = 5; + f!(v: 3); +}