aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/ast
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-02-27 12:18:55 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-02-27 12:18:55 +0000
commit2e2a6dd2fbeb4da16e602fa1902ab6bbd850b442 (patch)
treeb42e6faf8618c3625e41d5a2011b4ffd145f22de /crates/ra_syntax/src/ast
parent1927eb088ac9aa3851f77bb929296873ccb4faed (diff)
parentd3ce69aee3297e683691ec0123f5a2584a8075a0 (diff)
Merge #900
900: Add new trait ast::TypeAscriptionOwner r=vipentti a=vipentti This trait should be implemented for nodes which have an ascribed type, e.g. thing : Type. Such as let, const, static, param, named struct fields. In addition, we update some places where previously we used node + node.type_ref() with `TypeAscriptionOwner` in the trait bounds. Co-authored-by: Ville Penttinen <[email protected]>
Diffstat (limited to 'crates/ra_syntax/src/ast')
-rw-r--r--crates/ra_syntax/src/ast/generated.rs36
1 files changed, 9 insertions, 27 deletions
diff --git a/crates/ra_syntax/src/ast/generated.rs b/crates/ra_syntax/src/ast/generated.rs
index 4e2705d09..7572225b8 100644
--- a/crates/ra_syntax/src/ast/generated.rs
+++ b/crates/ra_syntax/src/ast/generated.rs
@@ -628,11 +628,8 @@ impl ast::NameOwner for ConstDef {}
628impl ast::TypeParamsOwner for ConstDef {} 628impl ast::TypeParamsOwner for ConstDef {}
629impl ast::AttrsOwner for ConstDef {} 629impl ast::AttrsOwner for ConstDef {}
630impl ast::DocCommentsOwner for ConstDef {} 630impl ast::DocCommentsOwner for ConstDef {}
631impl ConstDef { 631impl ast::TypeAscriptionOwner for ConstDef {}
632 pub fn type_ref(&self) -> Option<&TypeRef> { 632impl ConstDef {}
633 super::child_opt(self)
634 }
635}
636 633
637// ContinueExpr 634// ContinueExpr
638#[derive(Debug, PartialEq, Eq, Hash)] 635#[derive(Debug, PartialEq, Eq, Hash)]
@@ -1767,15 +1764,12 @@ impl ToOwned for LetStmt {
1767} 1764}
1768 1765
1769 1766
1767impl ast::TypeAscriptionOwner for LetStmt {}
1770impl LetStmt { 1768impl LetStmt {
1771 pub fn pat(&self) -> Option<&Pat> { 1769 pub fn pat(&self) -> Option<&Pat> {
1772 super::child_opt(self) 1770 super::child_opt(self)
1773 } 1771 }
1774 1772
1775 pub fn type_ref(&self) -> Option<&TypeRef> {
1776 super::child_opt(self)
1777 }
1778
1779 pub fn initializer(&self) -> Option<&Expr> { 1773 pub fn initializer(&self) -> Option<&Expr> {
1780 super::child_opt(self) 1774 super::child_opt(self)
1781 } 1775 }
@@ -2592,11 +2586,8 @@ impl ast::VisibilityOwner for NamedFieldDef {}
2592impl ast::NameOwner for NamedFieldDef {} 2586impl ast::NameOwner for NamedFieldDef {}
2593impl ast::AttrsOwner for NamedFieldDef {} 2587impl ast::AttrsOwner for NamedFieldDef {}
2594impl ast::DocCommentsOwner for NamedFieldDef {} 2588impl ast::DocCommentsOwner for NamedFieldDef {}
2595impl NamedFieldDef { 2589impl ast::TypeAscriptionOwner for NamedFieldDef {}
2596 pub fn type_ref(&self) -> Option<&TypeRef> { 2590impl NamedFieldDef {}
2597 super::child_opt(self)
2598 }
2599}
2600 2591
2601// NamedFieldDefList 2592// NamedFieldDefList
2602#[derive(Debug, PartialEq, Eq, Hash)] 2593#[derive(Debug, PartialEq, Eq, Hash)]
@@ -2774,14 +2765,11 @@ impl ToOwned for Param {
2774} 2765}
2775 2766
2776 2767
2768impl ast::TypeAscriptionOwner for Param {}
2777impl Param { 2769impl Param {
2778 pub fn pat(&self) -> Option<&Pat> { 2770 pub fn pat(&self) -> Option<&Pat> {
2779 super::child_opt(self) 2771 super::child_opt(self)
2780 } 2772 }
2781
2782 pub fn type_ref(&self) -> Option<&TypeRef> {
2783 super::child_opt(self)
2784 }
2785} 2773}
2786 2774
2787// ParamList 2775// ParamList
@@ -3685,11 +3673,8 @@ impl ToOwned for SelfParam {
3685} 3673}
3686 3674
3687 3675
3676impl ast::TypeAscriptionOwner for SelfParam {}
3688impl SelfParam { 3677impl SelfParam {
3689 pub fn type_ref(&self) -> Option<&TypeRef> {
3690 super::child_opt(self)
3691 }
3692
3693 pub fn self_kw(&self) -> Option<&SelfKw> { 3678 pub fn self_kw(&self) -> Option<&SelfKw> {
3694 super::child_opt(self) 3679 super::child_opt(self)
3695 } 3680 }
@@ -3820,11 +3805,8 @@ impl ast::NameOwner for StaticDef {}
3820impl ast::TypeParamsOwner for StaticDef {} 3805impl ast::TypeParamsOwner for StaticDef {}
3821impl ast::AttrsOwner for StaticDef {} 3806impl ast::AttrsOwner for StaticDef {}
3822impl ast::DocCommentsOwner for StaticDef {} 3807impl ast::DocCommentsOwner for StaticDef {}
3823impl StaticDef { 3808impl ast::TypeAscriptionOwner for StaticDef {}
3824 pub fn type_ref(&self) -> Option<&TypeRef> { 3809impl StaticDef {}
3825 super::child_opt(self)
3826 }
3827}
3828 3810
3829// Stmt 3811// Stmt
3830#[derive(Debug, PartialEq, Eq, Hash)] 3812#[derive(Debug, PartialEq, Eq, Hash)]