diff options
Diffstat (limited to 'crates/ra_syntax/src')
-rw-r--r-- | crates/ra_syntax/src/ast/generated.rs | 94 | ||||
-rw-r--r-- | crates/ra_syntax/src/grammar.ron | 8 | ||||
-rw-r--r-- | crates/ra_syntax/src/parsing/text_tree_sink.rs | 2 |
3 files changed, 52 insertions, 52 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs index aa88b1e28..4e2705d09 100644 --- a/crates/ra_syntax/src/ast/generated.rs +++ b/crates/ra_syntax/src/ast/generated.rs | |||
@@ -1508,7 +1508,7 @@ unsafe impl TransparentNewType for ImplItem { | |||
1508 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] | 1508 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] |
1509 | pub enum ImplItemKind<'a> { | 1509 | pub enum ImplItemKind<'a> { |
1510 | FnDef(&'a FnDef), | 1510 | FnDef(&'a FnDef), |
1511 | TypeDef(&'a TypeDef), | 1511 | TypeAliasDef(&'a TypeAliasDef), |
1512 | ConstDef(&'a ConstDef), | 1512 | ConstDef(&'a ConstDef), |
1513 | } | 1513 | } |
1514 | impl<'a> From<&'a FnDef> for &'a ImplItem { | 1514 | impl<'a> From<&'a FnDef> for &'a ImplItem { |
@@ -1516,8 +1516,8 @@ impl<'a> From<&'a FnDef> for &'a ImplItem { | |||
1516 | ImplItem::cast(&n.syntax).unwrap() | 1516 | ImplItem::cast(&n.syntax).unwrap() |
1517 | } | 1517 | } |
1518 | } | 1518 | } |
1519 | impl<'a> From<&'a TypeDef> for &'a ImplItem { | 1519 | impl<'a> From<&'a TypeAliasDef> for &'a ImplItem { |
1520 | fn from(n: &'a TypeDef) -> &'a ImplItem { | 1520 | fn from(n: &'a TypeAliasDef) -> &'a ImplItem { |
1521 | ImplItem::cast(&n.syntax).unwrap() | 1521 | ImplItem::cast(&n.syntax).unwrap() |
1522 | } | 1522 | } |
1523 | } | 1523 | } |
@@ -1532,7 +1532,7 @@ impl AstNode for ImplItem { | |||
1532 | fn cast(syntax: &SyntaxNode) -> Option<&Self> { | 1532 | fn cast(syntax: &SyntaxNode) -> Option<&Self> { |
1533 | match syntax.kind() { | 1533 | match syntax.kind() { |
1534 | | FN_DEF | 1534 | | FN_DEF |
1535 | | TYPE_DEF | 1535 | | TYPE_ALIAS_DEF |
1536 | | CONST_DEF => Some(ImplItem::from_repr(syntax.into_repr())), | 1536 | | CONST_DEF => Some(ImplItem::from_repr(syntax.into_repr())), |
1537 | _ => None, | 1537 | _ => None, |
1538 | } | 1538 | } |
@@ -1549,7 +1549,7 @@ impl ImplItem { | |||
1549 | pub fn kind(&self) -> ImplItemKind { | 1549 | pub fn kind(&self) -> ImplItemKind { |
1550 | match self.syntax.kind() { | 1550 | match self.syntax.kind() { |
1551 | FN_DEF => ImplItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), | 1551 | FN_DEF => ImplItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), |
1552 | TYPE_DEF => ImplItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()), | 1552 | TYPE_ALIAS_DEF => ImplItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()), |
1553 | CONST_DEF => ImplItemKind::ConstDef(ConstDef::cast(&self.syntax).unwrap()), | 1553 | CONST_DEF => ImplItemKind::ConstDef(ConstDef::cast(&self.syntax).unwrap()), |
1554 | _ => unreachable!(), | 1554 | _ => unreachable!(), |
1555 | } | 1555 | } |
@@ -2359,7 +2359,7 @@ pub enum ModuleItemKind<'a> { | |||
2359 | EnumDef(&'a EnumDef), | 2359 | EnumDef(&'a EnumDef), |
2360 | FnDef(&'a FnDef), | 2360 | FnDef(&'a FnDef), |
2361 | TraitDef(&'a TraitDef), | 2361 | TraitDef(&'a TraitDef), |
2362 | TypeDef(&'a TypeDef), | 2362 | TypeAliasDef(&'a TypeAliasDef), |
2363 | ImplBlock(&'a ImplBlock), | 2363 | ImplBlock(&'a ImplBlock), |
2364 | UseItem(&'a UseItem), | 2364 | UseItem(&'a UseItem), |
2365 | ExternCrateItem(&'a ExternCrateItem), | 2365 | ExternCrateItem(&'a ExternCrateItem), |
@@ -2387,8 +2387,8 @@ impl<'a> From<&'a TraitDef> for &'a ModuleItem { | |||
2387 | ModuleItem::cast(&n.syntax).unwrap() | 2387 | ModuleItem::cast(&n.syntax).unwrap() |
2388 | } | 2388 | } |
2389 | } | 2389 | } |
2390 | impl<'a> From<&'a TypeDef> for &'a ModuleItem { | 2390 | impl<'a> From<&'a TypeAliasDef> for &'a ModuleItem { |
2391 | fn from(n: &'a TypeDef) -> &'a ModuleItem { | 2391 | fn from(n: &'a TypeAliasDef) -> &'a ModuleItem { |
2392 | ModuleItem::cast(&n.syntax).unwrap() | 2392 | ModuleItem::cast(&n.syntax).unwrap() |
2393 | } | 2393 | } |
2394 | } | 2394 | } |
@@ -2431,7 +2431,7 @@ impl AstNode for ModuleItem { | |||
2431 | | ENUM_DEF | 2431 | | ENUM_DEF |
2432 | | FN_DEF | 2432 | | FN_DEF |
2433 | | TRAIT_DEF | 2433 | | TRAIT_DEF |
2434 | | TYPE_DEF | 2434 | | TYPE_ALIAS_DEF |
2435 | | IMPL_BLOCK | 2435 | | IMPL_BLOCK |
2436 | | USE_ITEM | 2436 | | USE_ITEM |
2437 | | EXTERN_CRATE_ITEM | 2437 | | EXTERN_CRATE_ITEM |
@@ -2456,7 +2456,7 @@ impl ModuleItem { | |||
2456 | ENUM_DEF => ModuleItemKind::EnumDef(EnumDef::cast(&self.syntax).unwrap()), | 2456 | ENUM_DEF => ModuleItemKind::EnumDef(EnumDef::cast(&self.syntax).unwrap()), |
2457 | FN_DEF => ModuleItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), | 2457 | FN_DEF => ModuleItemKind::FnDef(FnDef::cast(&self.syntax).unwrap()), |
2458 | TRAIT_DEF => ModuleItemKind::TraitDef(TraitDef::cast(&self.syntax).unwrap()), | 2458 | TRAIT_DEF => ModuleItemKind::TraitDef(TraitDef::cast(&self.syntax).unwrap()), |
2459 | TYPE_DEF => ModuleItemKind::TypeDef(TypeDef::cast(&self.syntax).unwrap()), | 2459 | TYPE_ALIAS_DEF => ModuleItemKind::TypeAliasDef(TypeAliasDef::cast(&self.syntax).unwrap()), |
2460 | IMPL_BLOCK => ModuleItemKind::ImplBlock(ImplBlock::cast(&self.syntax).unwrap()), | 2460 | IMPL_BLOCK => ModuleItemKind::ImplBlock(ImplBlock::cast(&self.syntax).unwrap()), |
2461 | USE_ITEM => ModuleItemKind::UseItem(UseItem::cast(&self.syntax).unwrap()), | 2461 | USE_ITEM => ModuleItemKind::UseItem(UseItem::cast(&self.syntax).unwrap()), |
2462 | EXTERN_CRATE_ITEM => ModuleItemKind::ExternCrateItem(ExternCrateItem::cast(&self.syntax).unwrap()), | 2462 | EXTERN_CRATE_ITEM => ModuleItemKind::ExternCrateItem(ExternCrateItem::cast(&self.syntax).unwrap()), |
@@ -4273,6 +4273,43 @@ impl TupleType { | |||
4273 | } | 4273 | } |
4274 | } | 4274 | } |
4275 | 4275 | ||
4276 | // TypeAliasDef | ||
4277 | #[derive(Debug, PartialEq, Eq, Hash)] | ||
4278 | #[repr(transparent)] | ||
4279 | pub struct TypeAliasDef { | ||
4280 | pub(crate) syntax: SyntaxNode, | ||
4281 | } | ||
4282 | unsafe impl TransparentNewType for TypeAliasDef { | ||
4283 | type Repr = rowan::SyntaxNode<RaTypes>; | ||
4284 | } | ||
4285 | |||
4286 | impl AstNode for TypeAliasDef { | ||
4287 | fn cast(syntax: &SyntaxNode) -> Option<&Self> { | ||
4288 | match syntax.kind() { | ||
4289 | TYPE_ALIAS_DEF => Some(TypeAliasDef::from_repr(syntax.into_repr())), | ||
4290 | _ => None, | ||
4291 | } | ||
4292 | } | ||
4293 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
4294 | } | ||
4295 | |||
4296 | impl ToOwned for TypeAliasDef { | ||
4297 | type Owned = TreeArc<TypeAliasDef>; | ||
4298 | fn to_owned(&self) -> TreeArc<TypeAliasDef> { TreeArc::cast(self.syntax.to_owned()) } | ||
4299 | } | ||
4300 | |||
4301 | |||
4302 | impl ast::VisibilityOwner for TypeAliasDef {} | ||
4303 | impl ast::NameOwner for TypeAliasDef {} | ||
4304 | impl ast::TypeParamsOwner for TypeAliasDef {} | ||
4305 | impl ast::AttrsOwner for TypeAliasDef {} | ||
4306 | impl ast::DocCommentsOwner for TypeAliasDef {} | ||
4307 | impl TypeAliasDef { | ||
4308 | pub fn type_ref(&self) -> Option<&TypeRef> { | ||
4309 | super::child_opt(self) | ||
4310 | } | ||
4311 | } | ||
4312 | |||
4276 | // TypeArg | 4313 | // TypeArg |
4277 | #[derive(Debug, PartialEq, Eq, Hash)] | 4314 | #[derive(Debug, PartialEq, Eq, Hash)] |
4278 | #[repr(transparent)] | 4315 | #[repr(transparent)] |
@@ -4345,43 +4382,6 @@ impl TypeArgList { | |||
4345 | } | 4382 | } |
4346 | } | 4383 | } |
4347 | 4384 | ||
4348 | // TypeDef | ||
4349 | #[derive(Debug, PartialEq, Eq, Hash)] | ||
4350 | #[repr(transparent)] | ||
4351 | pub struct TypeDef { | ||
4352 | pub(crate) syntax: SyntaxNode, | ||
4353 | } | ||
4354 | unsafe impl TransparentNewType for TypeDef { | ||
4355 | type Repr = rowan::SyntaxNode<RaTypes>; | ||
4356 | } | ||
4357 | |||
4358 | impl AstNode for TypeDef { | ||
4359 | fn cast(syntax: &SyntaxNode) -> Option<&Self> { | ||
4360 | match syntax.kind() { | ||
4361 | TYPE_DEF => Some(TypeDef::from_repr(syntax.into_repr())), | ||
4362 | _ => None, | ||
4363 | } | ||
4364 | } | ||
4365 | fn syntax(&self) -> &SyntaxNode { &self.syntax } | ||
4366 | } | ||
4367 | |||
4368 | impl ToOwned for TypeDef { | ||
4369 | type Owned = TreeArc<TypeDef>; | ||
4370 | fn to_owned(&self) -> TreeArc<TypeDef> { TreeArc::cast(self.syntax.to_owned()) } | ||
4371 | } | ||
4372 | |||
4373 | |||
4374 | impl ast::VisibilityOwner for TypeDef {} | ||
4375 | impl ast::NameOwner for TypeDef {} | ||
4376 | impl ast::TypeParamsOwner for TypeDef {} | ||
4377 | impl ast::AttrsOwner for TypeDef {} | ||
4378 | impl ast::DocCommentsOwner for TypeDef {} | ||
4379 | impl TypeDef { | ||
4380 | pub fn type_ref(&self) -> Option<&TypeRef> { | ||
4381 | super::child_opt(self) | ||
4382 | } | ||
4383 | } | ||
4384 | |||
4385 | // TypeParam | 4385 | // TypeParam |
4386 | #[derive(Debug, PartialEq, Eq, Hash)] | 4386 | #[derive(Debug, PartialEq, Eq, Hash)] |
4387 | #[repr(transparent)] | 4387 | #[repr(transparent)] |
diff --git a/crates/ra_syntax/src/grammar.ron b/crates/ra_syntax/src/grammar.ron index b1775d0f8..c7acbbd6c 100644 --- a/crates/ra_syntax/src/grammar.ron +++ b/crates/ra_syntax/src/grammar.ron | |||
@@ -132,7 +132,7 @@ Grammar( | |||
132 | "CONST_DEF", | 132 | "CONST_DEF", |
133 | "TRAIT_DEF", | 133 | "TRAIT_DEF", |
134 | "IMPL_BLOCK", | 134 | "IMPL_BLOCK", |
135 | "TYPE_DEF", | 135 | "TYPE_ALIAS_DEF", |
136 | "MACRO_CALL", | 136 | "MACRO_CALL", |
137 | "TOKEN_TREE", | 137 | "TOKEN_TREE", |
138 | 138 | ||
@@ -312,7 +312,7 @@ Grammar( | |||
312 | ], | 312 | ], |
313 | options: ["TypeRef"] | 313 | options: ["TypeRef"] |
314 | ), | 314 | ), |
315 | "TypeDef": ( | 315 | "TypeAliasDef": ( |
316 | traits: [ | 316 | traits: [ |
317 | "VisibilityOwner", | 317 | "VisibilityOwner", |
318 | "NameOwner", | 318 | "NameOwner", |
@@ -363,11 +363,11 @@ Grammar( | |||
363 | ], | 363 | ], |
364 | ), | 364 | ), |
365 | "ModuleItem": ( | 365 | "ModuleItem": ( |
366 | enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeDef", "ImplBlock", | 366 | enum: ["StructDef", "EnumDef", "FnDef", "TraitDef", "TypeAliasDef", "ImplBlock", |
367 | "UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ] | 367 | "UseItem", "ExternCrateItem", "ConstDef", "StaticDef", "Module" ] |
368 | ), | 368 | ), |
369 | "ImplItem": ( | 369 | "ImplItem": ( |
370 | enum: ["FnDef", "TypeDef", "ConstDef"] | 370 | enum: ["FnDef", "TypeAliasDef", "ConstDef"] |
371 | ), | 371 | ), |
372 | 372 | ||
373 | "TupleExpr": ( | 373 | "TupleExpr": ( |
diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs index 961a91d41..b17d06c61 100644 --- a/crates/ra_syntax/src/parsing/text_tree_sink.rs +++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs | |||
@@ -143,7 +143,7 @@ fn n_attached_trivias<'a>( | |||
143 | trivias: impl Iterator<Item = (SyntaxKind, &'a str)>, | 143 | trivias: impl Iterator<Item = (SyntaxKind, &'a str)>, |
144 | ) -> usize { | 144 | ) -> usize { |
145 | match kind { | 145 | match kind { |
146 | CONST_DEF | TYPE_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF | 146 | CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF |
147 | | MODULE | NAMED_FIELD_DEF => { | 147 | | MODULE | NAMED_FIELD_DEF => { |
148 | let mut res = 0; | 148 | let mut res = 0; |
149 | for (i, (kind, text)) in trivias.enumerate() { | 149 | for (i, (kind, text)) in trivias.enumerate() { |