diff --git a/parser/src/ast/top_level.rs b/parser/src/ast/top_level.rs index f347c34..110e6e9 100644 --- a/parser/src/ast/top_level.rs +++ b/parser/src/ast/top_level.rs @@ -35,7 +35,7 @@ pub enum TopLevelKind { name: Identifier, generics: GenericsDecl, requirements: Vec, - items: Vec, + items: Vec>, }, EnumDecl { visibility: Visibility, diff --git a/parser/src/parser/items/mod.rs b/parser/src/parser/items/mod.rs index 84a961e..fe45403 100644 --- a/parser/src/parser/items/mod.rs +++ b/parser/src/parser/items/mod.rs @@ -8,7 +8,7 @@ use crate::{ Rule, ast::*, ast_expr, - error::{AstError, AstResult, IntoErr, collect_recovered}, + error::{AstError, IntoErr, collect_recovered}, parser::consume_rule, }; @@ -113,7 +113,7 @@ impl<'a> TryFrom> for TopLevelKind { .transpose() .map(|v| v.unwrap_or_default()), - items: Ok(Vec::new()) as AstResult<'_, Vec<_>>, + items: collect_recovered(&mut inner), }), _ => AstError::bug_unimplemented(pair),