Constructor generics
This commit is contained in:
@@ -120,6 +120,7 @@ pub enum EnumItem {
|
||||
#[derive(Debug, Clone, Serialize)]
|
||||
pub struct ClassConstructor {
|
||||
pub visibility: Visibility,
|
||||
pub generics: Generics,
|
||||
pub params: ParamList,
|
||||
pub body: Block,
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ enum_decl = {
|
||||
// ======================================================
|
||||
|
||||
class_constructor = {
|
||||
export? ~ "constructor" ~ "(" ~ param_list? ~ ")" ~ block
|
||||
export? ~ "constructor" ~ generics? ~ "(" ~ param_list? ~ ")" ~ block
|
||||
}
|
||||
|
||||
class_fields = {
|
||||
|
||||
@@ -211,12 +211,17 @@ impl From<pest::iterators::Pair<'_, Rule>> for ClassConstructor {
|
||||
|
||||
let visibility = Visibility::from(&mut inner);
|
||||
|
||||
let generics = consume_rule(&mut inner, Rule::generics)
|
||||
.map(Generics::from)
|
||||
.unwrap_or_default();
|
||||
|
||||
let params = consume_rule(&mut inner, Rule::param_list)
|
||||
.map(ParamList::from)
|
||||
.unwrap_or_else(|| ParamList(Vec::new()));
|
||||
|
||||
Self {
|
||||
visibility,
|
||||
generics,
|
||||
params,
|
||||
body: Block::from(inner.next().unwrap()),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user