diff --git a/ast/src/gen/fold.rs b/ast/src/gen/fold.rs index b133b89..eedfc53 100644 --- a/ast/src/gen/fold.rs +++ b/ast/src/gen/fold.rs @@ -2896,13 +2896,24 @@ pub fn fold_type_param_type_var + ?Sized>( #[allow(unused)] folder: &mut F, node: TypeParamTypeVar, ) -> Result, F::Error> { - let TypeParamTypeVar { name, bound, range } = node; + let TypeParamTypeVar { + name, + bound, + default_value, + range, + } = node; let context = folder.will_map_user(&range); let name = Foldable::fold(name, folder)?; let bound = Foldable::fold(bound, folder)?; + let default_value = Foldable::fold(default_value, folder)?; let range = folder.map_user(range, context)?; - Ok(TypeParamTypeVar { name, bound, range }) + Ok(TypeParamTypeVar { + name, + bound, + default_value, + range, + }) } impl Foldable for TypeParamParamSpec { type Mapped = TypeParamParamSpec; @@ -2917,12 +2928,21 @@ pub fn fold_type_param_param_spec + ?Sized>( #[allow(unused)] folder: &mut F, node: TypeParamParamSpec, ) -> Result, F::Error> { - let TypeParamParamSpec { name, range } = node; + let TypeParamParamSpec { + name, + default_value, + range, + } = node; let context = folder.will_map_user(&range); let name = Foldable::fold(name, folder)?; + let default_value = Foldable::fold(default_value, folder)?; let range = folder.map_user(range, context)?; - Ok(TypeParamParamSpec { name, range }) + Ok(TypeParamParamSpec { + name, + default_value, + range, + }) } impl Foldable for TypeParamTypeVarTuple { type Mapped = TypeParamTypeVarTuple; @@ -2937,12 +2957,21 @@ pub fn fold_type_param_type_var_tuple + ?Sized>( #[allow(unused)] folder: &mut F, node: TypeParamTypeVarTuple, ) -> Result, F::Error> { - let TypeParamTypeVarTuple { name, range } = node; + let TypeParamTypeVarTuple { + name, + default_value, + range, + } = node; let context = folder.will_map_user(&range); let name = Foldable::fold(name, folder)?; + let default_value = Foldable::fold(default_value, folder)?; let range = folder.map_user(range, context)?; - Ok(TypeParamTypeVarTuple { name, range }) + Ok(TypeParamTypeVarTuple { + name, + default_value, + range, + }) } impl Foldable for ArgWithDefault { type Mapped = ArgWithDefault; diff --git a/ast/src/gen/generic.rs b/ast/src/gen/generic.rs index 5efe9c0..bcbea58 100644 --- a/ast/src/gen/generic.rs +++ b/ast/src/gen/generic.rs @@ -1,7 +1,8 @@ // File automatically generated by ast/asdl_rs.py. use crate::text_size::TextRange; -#[derive(Clone, Debug, PartialEq, is_macro::Is)] +#[derive(Clone, Debug, PartialEq)] +#[derive(is_macro::Is)] pub enum Ast { #[is(name = "module")] Mod(Mod), @@ -3131,11 +3132,12 @@ pub struct TypeParamTypeVar { pub range: R, pub name: Identifier, pub bound: Option>>, + pub default_value: Option>>, } impl Node for TypeParamTypeVar { const NAME: &'static str = "TypeVar"; - const FIELD_NAMES: &'static [&'static str] = &["name", "bound"]; + const FIELD_NAMES: &'static [&'static str] = &["name", "bound", "default_value"]; } impl From> for TypeParam { fn from(payload: TypeParamTypeVar) -> Self { @@ -3153,11 +3155,12 @@ impl From> for Ast { pub struct TypeParamParamSpec { pub range: R, pub name: Identifier, + pub default_value: Option>>, } impl Node for TypeParamParamSpec { const NAME: &'static str = "ParamSpec"; - const FIELD_NAMES: &'static [&'static str] = &["name"]; + const FIELD_NAMES: &'static [&'static str] = &["name", "default_value"]; } impl From> for TypeParam { fn from(payload: TypeParamParamSpec) -> Self { @@ -3175,11 +3178,12 @@ impl From> for Ast { pub struct TypeParamTypeVarTuple { pub range: R, pub name: Identifier, + pub default_value: Option>>, } impl Node for TypeParamTypeVarTuple { const NAME: &'static str = "TypeVarTuple"; - const FIELD_NAMES: &'static [&'static str] = &["name"]; + const FIELD_NAMES: &'static [&'static str] = &["name", "default_value"]; } impl From> for TypeParam { fn from(payload: TypeParamTypeVarTuple) -> Self { diff --git a/ast/src/gen/visitor.rs b/ast/src/gen/visitor.rs index d84e542..952e67c 100644 --- a/ast/src/gen/visitor.rs +++ b/ast/src/gen/visitor.rs @@ -853,13 +853,24 @@ pub trait Visitor { if let Some(value) = node.bound { self.visit_expr(*value); } + if let Some(value) = node.default_value { + self.visit_expr(*value); + } } fn visit_type_param_param_spec(&mut self, node: TypeParamParamSpec) { self.generic_visit_type_param_param_spec(node) } - fn generic_visit_type_param_param_spec(&mut self, node: TypeParamParamSpec) {} + fn generic_visit_type_param_param_spec(&mut self, node: TypeParamParamSpec) { + if let Some(value) = node.default_value { + self.visit_expr(*value); + } + } fn visit_type_param_type_var_tuple(&mut self, node: TypeParamTypeVarTuple) { self.generic_visit_type_param_type_var_tuple(node) } - fn generic_visit_type_param_type_var_tuple(&mut self, node: TypeParamTypeVarTuple) {} + fn generic_visit_type_param_type_var_tuple(&mut self, node: TypeParamTypeVarTuple) { + if let Some(value) = node.default_value { + self.visit_expr(*value); + } + } }