diff options
author | Sergey Parilin <[email protected]> | 2019-05-15 13:35:47 +0100 |
---|---|---|
committer | Sergey Parilin <[email protected]> | 2019-05-15 13:35:47 +0100 |
commit | 993abedd77cf23ce2281b6c8e60cab49ab4fa97e (patch) | |
tree | b8693ce808a9ca2e7eaae5013644a1082fc7bb17 /crates/ra_syntax/src/ast | |
parent | d77175ce28da45960a89811f273b6c614d7a9413 (diff) |
apply T! macro where it is possible
Diffstat (limited to 'crates/ra_syntax/src/ast')
-rw-r--r-- | crates/ra_syntax/src/ast/expr_extensions.rs | 77 | ||||
-rw-r--r-- | crates/ra_syntax/src/ast/extensions.rs | 44 |
2 files changed, 61 insertions, 60 deletions
diff --git a/crates/ra_syntax/src/ast/expr_extensions.rs b/crates/ra_syntax/src/ast/expr_extensions.rs index 9484c3b9b..17763809d 100644 --- a/crates/ra_syntax/src/ast/expr_extensions.rs +++ b/crates/ra_syntax/src/ast/expr_extensions.rs | |||
@@ -3,7 +3,8 @@ | |||
3 | use crate::{ | 3 | use crate::{ |
4 | SyntaxToken, SyntaxElement, SmolStr, | 4 | SyntaxToken, SyntaxElement, SmolStr, |
5 | ast::{self, AstNode, AstChildren, children, child_opt}, | 5 | ast::{self, AstNode, AstChildren, children, child_opt}, |
6 | SyntaxKind::* | 6 | SyntaxKind::*, |
7 | T | ||
7 | }; | 8 | }; |
8 | 9 | ||
9 | #[derive(Debug, Clone, PartialEq, Eq)] | 10 | #[derive(Debug, Clone, PartialEq, Eq)] |
@@ -34,7 +35,7 @@ impl ast::IfExpr { | |||
34 | 35 | ||
35 | impl ast::RefExpr { | 36 | impl ast::RefExpr { |
36 | pub fn is_mut(&self) -> bool { | 37 | pub fn is_mut(&self) -> bool { |
37 | self.syntax().children_with_tokens().any(|n| n.kind() == MUT_KW) | 38 | self.syntax().children_with_tokens().any(|n| n.kind() == T![mut]) |
38 | } | 39 | } |
39 | } | 40 | } |
40 | 41 | ||
@@ -51,9 +52,9 @@ pub enum PrefixOp { | |||
51 | impl ast::PrefixExpr { | 52 | impl ast::PrefixExpr { |
52 | pub fn op_kind(&self) -> Option<PrefixOp> { | 53 | pub fn op_kind(&self) -> Option<PrefixOp> { |
53 | match self.op_token()?.kind() { | 54 | match self.op_token()?.kind() { |
54 | STAR => Some(PrefixOp::Deref), | 55 | T![*] => Some(PrefixOp::Deref), |
55 | EXCL => Some(PrefixOp::Not), | 56 | T![!] => Some(PrefixOp::Not), |
56 | MINUS => Some(PrefixOp::Neg), | 57 | T![-] => Some(PrefixOp::Neg), |
57 | _ => None, | 58 | _ => None, |
58 | } | 59 | } |
59 | } | 60 | } |
@@ -133,37 +134,37 @@ impl ast::BinExpr { | |||
133 | fn op_details(&self) -> Option<(SyntaxToken, BinOp)> { | 134 | fn op_details(&self) -> Option<(SyntaxToken, BinOp)> { |
134 | self.syntax().children_with_tokens().filter_map(|it| it.as_token()).find_map(|c| { | 135 | self.syntax().children_with_tokens().filter_map(|it| it.as_token()).find_map(|c| { |
135 | match c.kind() { | 136 | match c.kind() { |
136 | PIPEPIPE => Some((c, BinOp::BooleanOr)), | 137 | T![||] => Some((c, BinOp::BooleanOr)), |
137 | AMPAMP => Some((c, BinOp::BooleanAnd)), | 138 | T![&&] => Some((c, BinOp::BooleanAnd)), |
138 | EQEQ => Some((c, BinOp::EqualityTest)), | 139 | T![==] => Some((c, BinOp::EqualityTest)), |
139 | NEQ => Some((c, BinOp::NegatedEqualityTest)), | 140 | T![!=] => Some((c, BinOp::NegatedEqualityTest)), |
140 | LTEQ => Some((c, BinOp::LesserEqualTest)), | 141 | T![<=] => Some((c, BinOp::LesserEqualTest)), |
141 | GTEQ => Some((c, BinOp::GreaterEqualTest)), | 142 | T![>=] => Some((c, BinOp::GreaterEqualTest)), |
142 | L_ANGLE => Some((c, BinOp::LesserTest)), | 143 | T![<] => Some((c, BinOp::LesserTest)), |
143 | R_ANGLE => Some((c, BinOp::GreaterTest)), | 144 | T![>] => Some((c, BinOp::GreaterTest)), |
144 | PLUS => Some((c, BinOp::Addition)), | 145 | T![+] => Some((c, BinOp::Addition)), |
145 | STAR => Some((c, BinOp::Multiplication)), | 146 | T![*] => Some((c, BinOp::Multiplication)), |
146 | MINUS => Some((c, BinOp::Subtraction)), | 147 | T![-] => Some((c, BinOp::Subtraction)), |
147 | SLASH => Some((c, BinOp::Division)), | 148 | T![/] => Some((c, BinOp::Division)), |
148 | PERCENT => Some((c, BinOp::Remainder)), | 149 | T![%] => Some((c, BinOp::Remainder)), |
149 | SHL => Some((c, BinOp::LeftShift)), | 150 | T![<<] => Some((c, BinOp::LeftShift)), |
150 | SHR => Some((c, BinOp::RightShift)), | 151 | T![>>] => Some((c, BinOp::RightShift)), |
151 | CARET => Some((c, BinOp::BitwiseXor)), | 152 | T![^] => Some((c, BinOp::BitwiseXor)), |
152 | PIPE => Some((c, BinOp::BitwiseOr)), | 153 | T![|] => Some((c, BinOp::BitwiseOr)), |
153 | AMP => Some((c, BinOp::BitwiseAnd)), | 154 | T![&] => Some((c, BinOp::BitwiseAnd)), |
154 | DOTDOT => Some((c, BinOp::RangeRightOpen)), | 155 | T![..] => Some((c, BinOp::RangeRightOpen)), |
155 | DOTDOTEQ => Some((c, BinOp::RangeRightClosed)), | 156 | T![..=] => Some((c, BinOp::RangeRightClosed)), |
156 | EQ => Some((c, BinOp::Assignment)), | 157 | T![=] => Some((c, BinOp::Assignment)), |
157 | PLUSEQ => Some((c, BinOp::AddAssign)), | 158 | T![+=] => Some((c, BinOp::AddAssign)), |
158 | SLASHEQ => Some((c, BinOp::DivAssign)), | 159 | T![/=] => Some((c, BinOp::DivAssign)), |
159 | STAREQ => Some((c, BinOp::MulAssign)), | 160 | T![*=] => Some((c, BinOp::MulAssign)), |
160 | PERCENTEQ => Some((c, BinOp::RemAssign)), | 161 | T![%=] => Some((c, BinOp::RemAssign)), |
161 | SHREQ => Some((c, BinOp::ShrAssign)), | 162 | T![>>=] => Some((c, BinOp::ShrAssign)), |
162 | SHLEQ => Some((c, BinOp::ShlAssign)), | 163 | T![<<=] => Some((c, BinOp::ShlAssign)), |
163 | MINUSEQ => Some((c, BinOp::SubAssign)), | 164 | T![-=] => Some((c, BinOp::SubAssign)), |
164 | PIPEEQ => Some((c, BinOp::BitOrAssign)), | 165 | T![|=] => Some((c, BinOp::BitOrAssign)), |
165 | AMPEQ => Some((c, BinOp::BitAndAssign)), | 166 | T![&=] => Some((c, BinOp::BitAndAssign)), |
166 | CARETEQ => Some((c, BinOp::BitXorAssign)), | 167 | T![^=] => Some((c, BinOp::BitXorAssign)), |
167 | _ => None, | 168 | _ => None, |
168 | } | 169 | } |
169 | }) | 170 | }) |
@@ -211,7 +212,7 @@ impl ast::ArrayExpr { | |||
211 | } | 212 | } |
212 | 213 | ||
213 | fn is_repeat(&self) -> bool { | 214 | fn is_repeat(&self) -> bool { |
214 | self.syntax().children_with_tokens().any(|it| it.kind() == SEMI) | 215 | self.syntax().children_with_tokens().any(|it| it.kind() == T![;]) |
215 | } | 216 | } |
216 | } | 217 | } |
217 | 218 | ||
@@ -258,7 +259,7 @@ impl ast::Literal { | |||
258 | LiteralKind::FloatNumber { suffix: suffix } | 259 | LiteralKind::FloatNumber { suffix: suffix } |
259 | } | 260 | } |
260 | STRING | RAW_STRING => LiteralKind::String, | 261 | STRING | RAW_STRING => LiteralKind::String, |
261 | TRUE_KW | FALSE_KW => LiteralKind::Bool, | 262 | T![true] | T![false] => LiteralKind::Bool, |
262 | BYTE_STRING | RAW_BYTE_STRING => LiteralKind::ByteString, | 263 | BYTE_STRING | RAW_BYTE_STRING => LiteralKind::ByteString, |
263 | CHAR => LiteralKind::Char, | 264 | CHAR => LiteralKind::Char, |
264 | BYTE => LiteralKind::Byte, | 265 | BYTE => LiteralKind::Byte, |
diff --git a/crates/ra_syntax/src/ast/extensions.rs b/crates/ra_syntax/src/ast/extensions.rs index f3466c585..f030e0df8 100644 --- a/crates/ra_syntax/src/ast/extensions.rs +++ b/crates/ra_syntax/src/ast/extensions.rs | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | use itertools::Itertools; | 4 | use itertools::Itertools; |
5 | 5 | ||
6 | use crate::{SmolStr, SyntaxToken, ast::{self, AstNode, children, child_opt}, SyntaxKind::*, SyntaxElement}; | 6 | use crate::{SmolStr, SyntaxToken, ast::{self, AstNode, children, child_opt}, SyntaxKind::*, SyntaxElement, T}; |
7 | use ra_parser::SyntaxKind; | 7 | use ra_parser::SyntaxKind; |
8 | 8 | ||
9 | impl ast::Name { | 9 | impl ast::Name { |
@@ -32,7 +32,7 @@ impl ast::Attr { | |||
32 | Some(prev) => prev, | 32 | Some(prev) => prev, |
33 | }; | 33 | }; |
34 | 34 | ||
35 | prev.kind() == EXCL | 35 | prev.kind() == T![!] |
36 | } | 36 | } |
37 | 37 | ||
38 | pub fn as_atom(&self) -> Option<SmolStr> { | 38 | pub fn as_atom(&self) -> Option<SmolStr> { |
@@ -102,9 +102,9 @@ impl ast::PathSegment { | |||
102 | PathSegmentKind::Name(name_ref) | 102 | PathSegmentKind::Name(name_ref) |
103 | } else { | 103 | } else { |
104 | match self.syntax().first_child_or_token()?.kind() { | 104 | match self.syntax().first_child_or_token()?.kind() { |
105 | SELF_KW => PathSegmentKind::SelfKw, | 105 | T![self] => PathSegmentKind::SelfKw, |
106 | SUPER_KW => PathSegmentKind::SuperKw, | 106 | T![super] => PathSegmentKind::SuperKw, |
107 | CRATE_KW => PathSegmentKind::CrateKw, | 107 | T![crate] => PathSegmentKind::CrateKw, |
108 | _ => return None, | 108 | _ => return None, |
109 | } | 109 | } |
110 | }; | 110 | }; |
@@ -113,7 +113,7 @@ impl ast::PathSegment { | |||
113 | 113 | ||
114 | pub fn has_colon_colon(&self) -> bool { | 114 | pub fn has_colon_colon(&self) -> bool { |
115 | match self.syntax.first_child_or_token().map(|s| s.kind()) { | 115 | match self.syntax.first_child_or_token().map(|s| s.kind()) { |
116 | Some(COLONCOLON) => true, | 116 | Some(T![::]) => true, |
117 | _ => false, | 117 | _ => false, |
118 | } | 118 | } |
119 | } | 119 | } |
@@ -129,14 +129,14 @@ impl ast::Module { | |||
129 | pub fn has_semi(&self) -> bool { | 129 | pub fn has_semi(&self) -> bool { |
130 | match self.syntax().last_child_or_token() { | 130 | match self.syntax().last_child_or_token() { |
131 | None => false, | 131 | None => false, |
132 | Some(node) => node.kind() == SEMI, | 132 | Some(node) => node.kind() == T![;], |
133 | } | 133 | } |
134 | } | 134 | } |
135 | } | 135 | } |
136 | 136 | ||
137 | impl ast::UseTree { | 137 | impl ast::UseTree { |
138 | pub fn has_star(&self) -> bool { | 138 | pub fn has_star(&self) -> bool { |
139 | self.syntax().children_with_tokens().any(|it| it.kind() == STAR) | 139 | self.syntax().children_with_tokens().any(|it| it.kind() == T![*]) |
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 | ||
@@ -172,7 +172,7 @@ impl ast::ImplBlock { | |||
172 | } | 172 | } |
173 | 173 | ||
174 | pub fn is_negative(&self) -> bool { | 174 | pub fn is_negative(&self) -> bool { |
175 | self.syntax().children_with_tokens().any(|t| t.kind() == EXCL) | 175 | self.syntax().children_with_tokens().any(|t| t.kind() == T![!]) |
176 | } | 176 | } |
177 | } | 177 | } |
178 | 178 | ||
@@ -219,7 +219,7 @@ impl ast::FnDef { | |||
219 | self.syntax() | 219 | self.syntax() |
220 | .last_child_or_token() | 220 | .last_child_or_token() |
221 | .and_then(|it| it.as_token()) | 221 | .and_then(|it| it.as_token()) |
222 | .filter(|it| it.kind() == SEMI) | 222 | .filter(|it| it.kind() == T![;]) |
223 | } | 223 | } |
224 | } | 224 | } |
225 | 225 | ||
@@ -227,7 +227,7 @@ impl ast::LetStmt { | |||
227 | pub fn has_semi(&self) -> bool { | 227 | pub fn has_semi(&self) -> bool { |
228 | match self.syntax().last_child_or_token() { | 228 | match self.syntax().last_child_or_token() { |
229 | None => false, | 229 | None => false, |
230 | Some(node) => node.kind() == SEMI, | 230 | Some(node) => node.kind() == T![;], |
231 | } | 231 | } |
232 | } | 232 | } |
233 | } | 233 | } |
@@ -236,7 +236,7 @@ impl ast::ExprStmt { | |||
236 | pub fn has_semi(&self) -> bool { | 236 | pub fn has_semi(&self) -> bool { |
237 | match self.syntax().last_child_or_token() { | 237 | match self.syntax().last_child_or_token() { |
238 | None => false, | 238 | None => false, |
239 | Some(node) => node.kind() == SEMI, | 239 | Some(node) => node.kind() == T![;], |
240 | } | 240 | } |
241 | } | 241 | } |
242 | } | 242 | } |
@@ -270,29 +270,29 @@ impl ast::FieldExpr { | |||
270 | 270 | ||
271 | impl ast::RefPat { | 271 | impl ast::RefPat { |
272 | pub fn is_mut(&self) -> bool { | 272 | pub fn is_mut(&self) -> bool { |
273 | self.syntax().children_with_tokens().any(|n| n.kind() == MUT_KW) | 273 | self.syntax().children_with_tokens().any(|n| n.kind() == T![mut]) |
274 | } | 274 | } |
275 | } | 275 | } |
276 | 276 | ||
277 | impl ast::BindPat { | 277 | impl ast::BindPat { |
278 | pub fn is_mutable(&self) -> bool { | 278 | pub fn is_mutable(&self) -> bool { |
279 | self.syntax().children_with_tokens().any(|n| n.kind() == MUT_KW) | 279 | self.syntax().children_with_tokens().any(|n| n.kind() == T![mut]) |
280 | } | 280 | } |
281 | 281 | ||
282 | pub fn is_ref(&self) -> bool { | 282 | pub fn is_ref(&self) -> bool { |
283 | self.syntax().children_with_tokens().any(|n| n.kind() == REF_KW) | 283 | self.syntax().children_with_tokens().any(|n| n.kind() == T![ref]) |
284 | } | 284 | } |
285 | } | 285 | } |
286 | 286 | ||
287 | impl ast::PointerType { | 287 | impl ast::PointerType { |
288 | pub fn is_mut(&self) -> bool { | 288 | pub fn is_mut(&self) -> bool { |
289 | self.syntax().children_with_tokens().any(|n| n.kind() == MUT_KW) | 289 | self.syntax().children_with_tokens().any(|n| n.kind() == T![mut]) |
290 | } | 290 | } |
291 | } | 291 | } |
292 | 292 | ||
293 | impl ast::ReferenceType { | 293 | impl ast::ReferenceType { |
294 | pub fn is_mut(&self) -> bool { | 294 | pub fn is_mut(&self) -> bool { |
295 | self.syntax().children_with_tokens().any(|n| n.kind() == MUT_KW) | 295 | self.syntax().children_with_tokens().any(|n| n.kind() == T![mut]) |
296 | } | 296 | } |
297 | } | 297 | } |
298 | 298 | ||
@@ -311,19 +311,19 @@ impl ast::SelfParam { | |||
311 | self.syntax() | 311 | self.syntax() |
312 | .children_with_tokens() | 312 | .children_with_tokens() |
313 | .filter_map(|it| it.as_token()) | 313 | .filter_map(|it| it.as_token()) |
314 | .find(|it| it.kind() == SELF_KW) | 314 | .find(|it| it.kind() == T![self]) |
315 | .expect("invalid tree: self param must have self") | 315 | .expect("invalid tree: self param must have self") |
316 | } | 316 | } |
317 | 317 | ||
318 | pub fn kind(&self) -> SelfParamKind { | 318 | pub fn kind(&self) -> SelfParamKind { |
319 | let borrowed = self.syntax().children_with_tokens().any(|n| n.kind() == AMP); | 319 | let borrowed = self.syntax().children_with_tokens().any(|n| n.kind() == T![&]); |
320 | if borrowed { | 320 | if borrowed { |
321 | // check for a `mut` coming after the & -- `mut &self` != `&mut self` | 321 | // check for a `mut` coming after the & -- `mut &self` != `&mut self` |
322 | if self | 322 | if self |
323 | .syntax() | 323 | .syntax() |
324 | .children_with_tokens() | 324 | .children_with_tokens() |
325 | .skip_while(|n| n.kind() != AMP) | 325 | .skip_while(|n| n.kind() != T![&]) |
326 | .any(|n| n.kind() == MUT_KW) | 326 | .any(|n| n.kind() == T![mut]) |
327 | { | 327 | { |
328 | SelfParamKind::MutRef | 328 | SelfParamKind::MutRef |
329 | } else { | 329 | } else { |
@@ -355,6 +355,6 @@ impl ast::WherePred { | |||
355 | 355 | ||
356 | impl ast::TraitDef { | 356 | impl ast::TraitDef { |
357 | pub fn is_auto(&self) -> bool { | 357 | pub fn is_auto(&self) -> bool { |
358 | self.syntax().children_with_tokens().any(|t| t.kind() == AUTO_KW) | 358 | self.syntax().children_with_tokens().any(|t| t.kind() == T![auto]) |
359 | } | 359 | } |
360 | } | 360 | } |