diff --git a/src/name_analysis/gather.rs b/src/name_analysis/gather.rs index 14577bf..87c42ec 100644 --- a/src/name_analysis/gather.rs +++ b/src/name_analysis/gather.rs @@ -209,60 +209,9 @@ fn gather_node( AstNodeRef::Member(member) => { gather_member(member, symbol_table, fqn_context, diagnostics); } - AstNodeRef::Statement(statement) => match statement { - Statement::VariableDeclaration(variable_declaration) => { - gather_node( - variable_declaration.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ); - } - Statement::AssignmentStatement(assignment_statement) => { - gather_node( - assignment_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ); - } - Statement::ExpressionStatement(expression_statement) => { - gather_node( - expression_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ); - } - Statement::UseStatement(use_statement) => { - gather_node( - use_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ); - } - Statement::IfStatement(if_statement) => gather_node( - if_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ), - Statement::WhileStatement(while_statement) => gather_node( - while_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ), - Statement::ForStatement(for_statement) => { - gather_node( - for_statement.as_node_ref(), - symbol_table, - fqn_context, - diagnostics, - ); - } - }, + AstNodeRef::Statement(statement) => { + gather_node_children(statement, symbol_table, fqn_context, diagnostics); + } AstNodeRef::VariableDeclaration(variable_declaration) => { gather_variable_declaration( variable_declaration,