aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/lib.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-12 22:31:04 +0100
committerAleksey Kladov <[email protected]>2019-09-12 22:31:04 +0100
commitbcf30d389c3744ab517372431eb7e1e1dfcc50df (patch)
tree8b34525b463ba62d9b1acc90a790a438ba8f9ee0 /crates/ra_hir/src/lib.rs
parent45117c63884366ee82102a782a62a09fefff746b (diff)
generalize impl_froms to nested enums
Diffstat (limited to 'crates/ra_hir/src/lib.rs')
-rw-r--r--crates/ra_hir/src/lib.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs
index 2fe1a658e..639e97c3d 100644
--- a/crates/ra_hir/src/lib.rs
+++ b/crates/ra_hir/src/lib.rs
@@ -8,13 +8,20 @@
8//! applied. So, the relation between syntax and HIR is many-to-one. 8//! applied. So, the relation between syntax and HIR is many-to-one.
9 9
10macro_rules! impl_froms { 10macro_rules! impl_froms {
11 ($e:ident: $($v:ident),*) => { 11 ($e:ident: $($v:ident $(($($sv:ident),*))?),*) => {
12 $( 12 $(
13 impl From<$v> for $e { 13 impl From<$v> for $e {
14 fn from(it: $v) -> $e { 14 fn from(it: $v) -> $e {
15 $e::$v(it) 15 $e::$v(it)
16 } 16 }
17 } 17 }
18 $($(
19 impl From<$sv> for $e {
20 fn from(it: $sv) -> $e {
21 $e::$v($v::$sv(it))
22 }
23 }
24 )*)?
18 )* 25 )*
19 } 26 }
20} 27}