aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-02-11 16:19:23 +0000
committerAleksey Kladov <[email protected]>2019-02-11 16:19:23 +0000
commite7b370226c9b3d045a805dae5b93231a0869bbca (patch)
tree1bf610035c5d6c05d7e348df772a548f6ec596fd /crates
parentaf62fde57fe58f4aa06608568dc26535731800a0 (diff)
make macro-rules eq
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_mbe/src/lib.rs20
-rw-r--r--crates/ra_tt/src/lib.rs2
2 files changed, 11 insertions, 11 deletions
diff --git a/crates/ra_mbe/src/lib.rs b/crates/ra_mbe/src/lib.rs
index b09837831..29731b050 100644
--- a/crates/ra_mbe/src/lib.rs
+++ b/crates/ra_mbe/src/lib.rs
@@ -30,7 +30,7 @@ pub use crate::syntax_bridge::ast_to_token_tree;
30/// be very confusing is that AST has almost exactly the same shape as 30/// be very confusing is that AST has almost exactly the same shape as
31/// `tt::TokenTree`, but there's a crucial difference: in macro rules, `$ident` 31/// `tt::TokenTree`, but there's a crucial difference: in macro rules, `$ident`
32/// and `$()*` have special meaning (see `Var` and `Repeat` data structures) 32/// and `$()*` have special meaning (see `Var` and `Repeat` data structures)
33#[derive(Debug)] 33#[derive(Debug, PartialEq, Eq)]
34pub struct MacroRules { 34pub struct MacroRules {
35 pub(crate) rules: Vec<Rule>, 35 pub(crate) rules: Vec<Rule>,
36} 36}
@@ -44,13 +44,13 @@ impl MacroRules {
44 } 44 }
45} 45}
46 46
47#[derive(Debug)] 47#[derive(Debug, PartialEq, Eq)]
48pub(crate) struct Rule { 48pub(crate) struct Rule {
49 pub(crate) lhs: Subtree, 49 pub(crate) lhs: Subtree,
50 pub(crate) rhs: Subtree, 50 pub(crate) rhs: Subtree,
51} 51}
52 52
53#[derive(Debug)] 53#[derive(Debug, PartialEq, Eq)]
54pub(crate) enum TokenTree { 54pub(crate) enum TokenTree {
55 Leaf(Leaf), 55 Leaf(Leaf),
56 Subtree(Subtree), 56 Subtree(Subtree),
@@ -58,7 +58,7 @@ pub(crate) enum TokenTree {
58} 58}
59impl_froms!(TokenTree: Leaf, Subtree, Repeat); 59impl_froms!(TokenTree: Leaf, Subtree, Repeat);
60 60
61#[derive(Debug)] 61#[derive(Debug, PartialEq, Eq)]
62pub(crate) enum Leaf { 62pub(crate) enum Leaf {
63 Literal(Literal), 63 Literal(Literal),
64 Punct(Punct), 64 Punct(Punct),
@@ -67,37 +67,37 @@ pub(crate) enum Leaf {
67} 67}
68impl_froms!(Leaf: Literal, Punct, Ident, Var); 68impl_froms!(Leaf: Literal, Punct, Ident, Var);
69 69
70#[derive(Debug)] 70#[derive(Debug, PartialEq, Eq)]
71pub(crate) struct Subtree { 71pub(crate) struct Subtree {
72 pub(crate) delimiter: Delimiter, 72 pub(crate) delimiter: Delimiter,
73 pub(crate) token_trees: Vec<TokenTree>, 73 pub(crate) token_trees: Vec<TokenTree>,
74} 74}
75 75
76#[derive(Debug)] 76#[derive(Debug, PartialEq, Eq)]
77pub(crate) struct Repeat { 77pub(crate) struct Repeat {
78 pub(crate) subtree: Subtree, 78 pub(crate) subtree: Subtree,
79 pub(crate) kind: RepeatKind, 79 pub(crate) kind: RepeatKind,
80 pub(crate) separator: Option<char>, 80 pub(crate) separator: Option<char>,
81} 81}
82 82
83#[derive(Debug)] 83#[derive(Debug, PartialEq, Eq)]
84pub(crate) enum RepeatKind { 84pub(crate) enum RepeatKind {
85 ZeroOrMore, 85 ZeroOrMore,
86 OneOrMore, 86 OneOrMore,
87 ZeroOrOne, 87 ZeroOrOne,
88} 88}
89 89
90#[derive(Debug)] 90#[derive(Debug, PartialEq, Eq)]
91pub(crate) struct Literal { 91pub(crate) struct Literal {
92 pub(crate) text: SmolStr, 92 pub(crate) text: SmolStr,
93} 93}
94 94
95#[derive(Debug)] 95#[derive(Debug, PartialEq, Eq)]
96pub(crate) struct Ident { 96pub(crate) struct Ident {
97 pub(crate) text: SmolStr, 97 pub(crate) text: SmolStr,
98} 98}
99 99
100#[derive(Debug)] 100#[derive(Debug, PartialEq, Eq)]
101pub(crate) struct Var { 101pub(crate) struct Var {
102 pub(crate) text: SmolStr, 102 pub(crate) text: SmolStr,
103 pub(crate) kind: Option<SmolStr>, 103 pub(crate) kind: Option<SmolStr>,
diff --git a/crates/ra_tt/src/lib.rs b/crates/ra_tt/src/lib.rs
index 043417abc..df31f72f3 100644
--- a/crates/ra_tt/src/lib.rs
+++ b/crates/ra_tt/src/lib.rs
@@ -39,7 +39,7 @@ pub struct Subtree {
39 pub token_trees: Vec<TokenTree>, 39 pub token_trees: Vec<TokenTree>,
40} 40}
41 41
42#[derive(Clone, Copy, Debug)] 42#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43pub enum Delimiter { 43pub enum Delimiter {
44 Parenthesis, 44 Parenthesis,
45 Brace, 45 Brace,