diff options
| author | Pietro Albini <pietro@pietroalbini.org> | 2018-10-25 14:31:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-25 14:31:00 +0200 |
| commit | f81e47f85e539a01af95dba2e16c861058803e4d (patch) | |
| tree | b91c3f1f6d0a87812768a84a2da4d5a5ed38853c /src/test/run-pass | |
| parent | 699f591a16181b6fa77411104ce609138dc5ce80 (diff) | |
| parent | c77a0cf5881e8e894d6fc15403cca002b9781d15 (diff) | |
| download | rust-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.rs | 16 |
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()); +} |
