diff options
author | Benjamin Coenen <[email protected]> | 2020-04-09 08:39:17 +0100 |
---|---|---|
committer | Benjamin Coenen <[email protected]> | 2020-04-09 08:53:53 +0100 |
commit | 585bb83e2aec9c79dae8c2e031e9165f40937003 (patch) | |
tree | 3dda062f3deb768b211e7e091dd5b29b9b6fae84 /crates/ra_proc_macro_srv/src | |
parent | 8f1dba6f9ae1d8d314dd9d007e4c582ed1403e8d (diff) | |
parent | 080c983498afcac3eb54028af5c9f8bfe7f2c826 (diff) |
feat: add attributes support on struct fields and method #3870
Signed-off-by: Benjamin Coenen <[email protected]>
Diffstat (limited to 'crates/ra_proc_macro_srv/src')
-rw-r--r-- | crates/ra_proc_macro_srv/src/proc_macro/diagnostic.rs | 8 | ||||
-rw-r--r-- | crates/ra_proc_macro_srv/src/proc_macro/mod.rs | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/crates/ra_proc_macro_srv/src/proc_macro/diagnostic.rs b/crates/ra_proc_macro_srv/src/proc_macro/diagnostic.rs index 9029f8815..55d93917c 100644 --- a/crates/ra_proc_macro_srv/src/proc_macro/diagnostic.rs +++ b/crates/ra_proc_macro_srv/src/proc_macro/diagnostic.rs | |||
@@ -54,12 +54,14 @@ pub struct Diagnostic { | |||
54 | } | 54 | } |
55 | 55 | ||
56 | macro_rules! diagnostic_child_methods { | 56 | macro_rules! diagnostic_child_methods { |
57 | ($spanned:ident, $regular:ident, $level:expr) => ( | 57 | ($spanned:ident, $regular:ident, $level:expr) => { |
58 | /// Adds a new child diagnostic message to `self` with the level | 58 | /// Adds a new child diagnostic message to `self` with the level |
59 | /// identified by this method's name with the given `spans` and | 59 | /// identified by this method's name with the given `spans` and |
60 | /// `message`. | 60 | /// `message`. |
61 | pub fn $spanned<S, T>(mut self, spans: S, message: T) -> Diagnostic | 61 | pub fn $spanned<S, T>(mut self, spans: S, message: T) -> Diagnostic |
62 | where S: MultiSpan, T: Into<String> | 62 | where |
63 | S: MultiSpan, | ||
64 | T: Into<String>, | ||
63 | { | 65 | { |
64 | self.children.push(Diagnostic::spanned(spans, $level, message)); | 66 | self.children.push(Diagnostic::spanned(spans, $level, message)); |
65 | self | 67 | self |
@@ -71,7 +73,7 @@ macro_rules! diagnostic_child_methods { | |||
71 | self.children.push(Diagnostic::new($level, message)); | 73 | self.children.push(Diagnostic::new($level, message)); |
72 | self | 74 | self |
73 | } | 75 | } |
74 | ) | 76 | }; |
75 | } | 77 | } |
76 | 78 | ||
77 | /// Iterator over the children diagnostics of a `Diagnostic`. | 79 | /// Iterator over the children diagnostics of a `Diagnostic`. |
diff --git a/crates/ra_proc_macro_srv/src/proc_macro/mod.rs b/crates/ra_proc_macro_srv/src/proc_macro/mod.rs index e35a6ff8b..ee0dc9722 100644 --- a/crates/ra_proc_macro_srv/src/proc_macro/mod.rs +++ b/crates/ra_proc_macro_srv/src/proc_macro/mod.rs | |||
@@ -169,13 +169,13 @@ pub mod token_stream { | |||
169 | pub struct Span(bridge::client::Span); | 169 | pub struct Span(bridge::client::Span); |
170 | 170 | ||
171 | macro_rules! diagnostic_method { | 171 | macro_rules! diagnostic_method { |
172 | ($name:ident, $level:expr) => ( | 172 | ($name:ident, $level:expr) => { |
173 | /// Creates a new `Diagnostic` with the given `message` at the span | 173 | /// Creates a new `Diagnostic` with the given `message` at the span |
174 | /// `self`. | 174 | /// `self`. |
175 | pub fn $name<T: Into<String>>(self, message: T) -> Diagnostic { | 175 | pub fn $name<T: Into<String>>(self, message: T) -> Diagnostic { |
176 | Diagnostic::spanned(self, $level, message) | 176 | Diagnostic::spanned(self, $level, message) |
177 | } | 177 | } |
178 | ) | 178 | }; |
179 | } | 179 | } |
180 | 180 | ||
181 | impl Span { | 181 | impl Span { |