summaryrefslogtreecommitdiffstats
path: root/tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs')
-rw-r--r--tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs b/tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs
new file mode 100644
index 000000000..0ab7e17f8
--- /dev/null
+++ b/tests/ui/rfcs/rfc-2151-raw-identifiers/macros.rs
@@ -0,0 +1,38 @@
+// run-pass
+#![feature(decl_macro)]
+
+macro_rules! r#struct {
+ ($r#struct:expr) => { $r#struct }
+}
+
+macro_rules! old_macro {
+ ($a:expr) => {$a}
+}
+
+macro r#decl_macro($r#fn:expr) {
+ $r#fn
+}
+
+macro passthrough($id:ident) {
+ $id
+}
+
+macro_rules! test_pat_match {
+ (a) => { 6 };
+ (r#a) => { 7 };
+}
+
+pub fn main() {
+ r#println!("{struct}", r#struct = 1);
+ assert_eq!(2, r#struct!(2));
+ assert_eq!(3, r#old_macro!(3));
+ assert_eq!(4, decl_macro!(4));
+
+ let r#match = 5;
+ assert_eq!(5, passthrough!(r#match));
+
+ assert_eq!("r#struct", stringify!(r#struct));
+
+ assert_eq!(6, test_pat_match!(a));
+ assert_eq!(7, test_pat_match!(r#a));
+}