Moved ovveride to after params

This commit is contained in:
2026-06-16 16:19:28 +02:00
parent 8b95497725
commit 4def6db820
3 changed files with 4 additions and 3 deletions
+1 -1
View File
@@ -333,7 +333,7 @@ trait_decl = {
override_kw = { "override" ~ ("(" ~ expr_path ~ ")")? } override_kw = { "override" ~ ("(" ~ expr_path ~ ")")? }
function_decl = { function_decl = {
visibility? ~ override_kw? ~ "fn" ~ ("void" | type_expr) ~ identifier ~ generics_decl? ~ "(" ~ method_args ~ ")" ~ (block | semicolon) visibility? ~ "fn" ~ ("void" | type_expr) ~ identifier ~ generics_decl? ~ "(" ~ method_args ~ ")" ~ override_kw? ~ (block | semicolon)
} }
// ====================================================== // ======================================================
+2 -1
View File
@@ -13,7 +13,6 @@ impl<'a> TryFrom<pest::iterators::Pair<'a, Rule>> for FunctionDecl {
ast_ensure!(pair, Rule::function_decl => { ast_ensure!(pair, Rule::function_decl => {
let mut inner = pair.into_inner(); let mut inner = pair.into_inner();
let visibility = Visibility::try_from(&mut inner); let visibility = Visibility::try_from(&mut inner);
let is_override = consume_rule(&mut inner, Rule::override_kw).map(Override::try_from).transpose();
let return_type = consume_rule(&mut inner, Rule::type_expr) let return_type = consume_rule(&mut inner, Rule::type_expr)
.map(TypeExpr::try_from) .map(TypeExpr::try_from)
@@ -64,6 +63,8 @@ impl<'a> TryFrom<pest::iterators::Pair<'a, Rule>> for FunctionDecl {
}) })
.unwrap_or_else(|| Ok(ParamList(self_param.into_iter().collect()))); .unwrap_or_else(|| Ok(ParamList(self_param.into_iter().collect())));
let is_override = consume_rule(&mut inner, Rule::override_kw).map(Override::try_from).transpose();
let body = inner.next().map(Block::try_from).transpose(); let body = inner.next().map(Block::try_from).transpose();
ast_expr!(Self { ast_expr!(Self {
+1 -1
View File
@@ -34,7 +34,7 @@ pub class Dog : Mammal {
super = Super::new(); super = Super::new();
} }
pub override(Animal) fn String speak(*self) { pub fn String speak(*self) override(Animal) {
"Woof!".to_string() "Woof!".to_string()
} }