about summary refs log tree commit diff
path: root/src/test/run-pass
diff options
context:
space:
mode:
authorPietro Albini <pietro@pietroalbini.org>2018-10-25 14:31:00 +0200
committerGitHub <noreply@github.com>2018-10-25 14:31:00 +0200
commitf81e47f85e539a01af95dba2e16c861058803e4d (patch)
treeb91c3f1f6d0a87812768a84a2da4d5a5ed38853c /src/test/run-pass
parent699f591a16181b6fa77411104ce609138dc5ce80 (diff)
parentc77a0cf5881e8e894d6fc15403cca002b9781d15 (diff)
downloadrust-f81e47f85e539a01af95dba2e16c861058803e4d.tar.gz
rust-f81e47f85e539a01af95dba2e16c861058803e4d.zip
Rollup merge of #54977 - estebank:macro-arg-parse, r=pnkfelix
Accept `Option<Box<$t:ty>>` in macro argument

Given the following code, compile successfuly:

```
macro_rules! test {
    (
        fn fun() -> Option<Box<$t:ty>>;
    ) => {
        fn fun(x: $t) -> Option<Box<$t>>
        { Some(Box::new(x)) }
    }
}

test! {
    fn fun() -> Option<Box<i32>>;
}
```

Fix #25274.
Diffstat (limited to 'src/test/run-pass')
-rw-r--r--src/test/run-pass/macros/issue-25274.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/run-pass/macros/issue-25274.rs b/src/test/run-pass/macros/issue-25274.rs
new file mode 100644
index 00000000000..e81b2c7a723
--- /dev/null
+++ b/src/test/run-pass/macros/issue-25274.rs
@@ -0,0 +1,16 @@
+macro_rules! test {
+    (
+        fn fun() -> Option<Box<$t:ty>>;
+    ) => {
+        fn fun(x: $t) -> Option<Box<$t>>
+        { Some(Box::new(x)) }
+    }
+}
+
+test! {
+    fn fun() -> Option<Box<i32>>;
+}
+
+fn main() {
+    println!("{}", fun(0).unwrap());
+}