mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
Add trait ast::TypeBoundsOwner
This commit is contained in:
@@ -110,6 +110,12 @@ fn where_clause(&self) -> Option<&WhereClause> {
|
||||
}
|
||||
}
|
||||
|
||||
pub trait TypeBoundsOwner: AstNode {
|
||||
fn type_bound_list(&self) -> Option<&TypeBoundList> {
|
||||
child_opt(self)
|
||||
}
|
||||
}
|
||||
|
||||
pub trait AttrsOwner: AstNode {
|
||||
fn attrs(&self) -> AstChildren<Attr> {
|
||||
children(self)
|
||||
|
||||
@@ -685,6 +685,7 @@ fn to_owned(&self) -> TreeArc<DynTraitType> { TreeArc::cast(self.syntax.to_owned
|
||||
}
|
||||
|
||||
|
||||
impl ast::TypeBoundsOwner for DynTraitType {}
|
||||
impl DynTraitType {}
|
||||
|
||||
// EnumDef
|
||||
@@ -1581,6 +1582,7 @@ fn to_owned(&self) -> TreeArc<ImplTraitType> { TreeArc::cast(self.syntax.to_owne
|
||||
}
|
||||
|
||||
|
||||
impl ast::TypeBoundsOwner for ImplTraitType {}
|
||||
impl ImplTraitType {}
|
||||
|
||||
// IndexExpr
|
||||
@@ -4061,6 +4063,7 @@ impl ast::NameOwner for TraitDef {}
|
||||
impl ast::AttrsOwner for TraitDef {}
|
||||
impl ast::DocCommentsOwner for TraitDef {}
|
||||
impl ast::TypeParamsOwner for TraitDef {}
|
||||
impl ast::TypeBoundsOwner for TraitDef {}
|
||||
impl TraitDef {
|
||||
pub fn item_list(&self) -> Option<&ItemList> {
|
||||
super::child_opt(self)
|
||||
@@ -4291,6 +4294,7 @@ impl ast::NameOwner for TypeAliasDef {}
|
||||
impl ast::TypeParamsOwner for TypeAliasDef {}
|
||||
impl ast::AttrsOwner for TypeAliasDef {}
|
||||
impl ast::DocCommentsOwner for TypeAliasDef {}
|
||||
impl ast::TypeBoundsOwner for TypeAliasDef {}
|
||||
impl TypeAliasDef {
|
||||
pub fn type_ref(&self) -> Option<&TypeRef> {
|
||||
super::child_opt(self)
|
||||
@@ -4465,6 +4469,7 @@ fn to_owned(&self) -> TreeArc<TypeParam> { TreeArc::cast(self.syntax.to_owned())
|
||||
|
||||
impl ast::NameOwner for TypeParam {}
|
||||
impl ast::AttrsOwner for TypeParam {}
|
||||
impl ast::TypeBoundsOwner for TypeParam {}
|
||||
impl TypeParam {}
|
||||
|
||||
// TypeParamList
|
||||
|
||||
@@ -295,7 +295,7 @@ Grammar(
|
||||
"EnumVariantList": ( collections: [["variants", "EnumVariant"]] ),
|
||||
"EnumVariant": ( traits: ["NameOwner", "DocCommentsOwner", "AttrsOwner"], options: ["Expr"] ),
|
||||
"TraitDef": (
|
||||
traits: ["VisibilityOwner", "NameOwner", "AttrsOwner", "DocCommentsOwner", "TypeParamsOwner"],
|
||||
traits: ["VisibilityOwner", "NameOwner", "AttrsOwner", "DocCommentsOwner", "TypeParamsOwner", "TypeBoundsOwner"],
|
||||
options: ["ItemList"]
|
||||
),
|
||||
"Module": (
|
||||
@@ -332,7 +332,8 @@ Grammar(
|
||||
"NameOwner",
|
||||
"TypeParamsOwner",
|
||||
"AttrsOwner",
|
||||
"DocCommentsOwner"
|
||||
"DocCommentsOwner",
|
||||
"TypeBoundsOwner",
|
||||
],
|
||||
options: ["TypeRef"]
|
||||
),
|
||||
@@ -349,8 +350,12 @@ Grammar(
|
||||
"PlaceholderType": (),
|
||||
"FnPointerType": (options: ["ParamList", "RetType"]),
|
||||
"ForType": (options: ["TypeRef"]),
|
||||
"ImplTraitType": (),
|
||||
"DynTraitType": (),
|
||||
"ImplTraitType": (
|
||||
traits: ["TypeBoundsOwner"],
|
||||
),
|
||||
"DynTraitType": (
|
||||
traits: ["TypeBoundsOwner"],
|
||||
),
|
||||
|
||||
"TypeRef": ( enum: [
|
||||
"ParenType",
|
||||
@@ -573,7 +578,7 @@ Grammar(
|
||||
["lifetime_params", "LifetimeParam" ],
|
||||
]
|
||||
),
|
||||
"TypeParam": ( traits: ["NameOwner", "AttrsOwner"] ),
|
||||
"TypeParam": ( traits: ["NameOwner", "AttrsOwner", "TypeBoundsOwner"] ),
|
||||
"LifetimeParam": (
|
||||
options: [ "Lifetime"],
|
||||
traits: ["AttrsOwner"],
|
||||
|
||||
Reference in New Issue
Block a user