diff --git a/src/ast/build.rs b/src/ast/build.rs index 98d2a62..b030c53 100644 --- a/src/ast/build.rs +++ b/src/ast/build.rs @@ -1,4 +1,9 @@ -use crate::ast::{CompilationUnit, DelegateOrIdentifier, Fqn, FunctionModifier, FunctionTypeUse, GenericArgument, GenericArguments, GenericParameter, GenericParameters, Identifier, InputArgument, InputArguments, InterfaceOrClassTypeUse, Reference, References, ReturnType, TupleTypeUse, TypeUse, VoidOrTypeUse}; +use crate::ast::{ + CompilationUnit, DelegateOrIdentifier, Fqn, FunctionModifier, FunctionTypeUse, GenericArgument, + GenericArguments, GenericParameter, GenericParameters, Identifier, InputArgument, + InputArguments, InterfaceOrClassTypeUse, Reference, References, ReturnType, TupleTypeUse, + TypeUse, VoidOrTypeUse, +}; use crate::parser::Rule; use pest::iterators::Pair; @@ -90,7 +95,7 @@ fn build_function_type_use(function_pair: Pair) -> FunctionTypeUse { } Rule::ReturnType => { return_type = Some(build_return_type(inner_pair)); - }, + } _ => unreachable!(), } } @@ -173,20 +178,19 @@ fn build_function_input_arguments(pair: Pair) -> InputArguments { fn build_return_type(return_type_pair: Pair) -> ReturnType { let mut inner = return_type_pair.into_inner(); - + let declared_type_pair = inner.next().unwrap(); let declared_type = match declared_type_pair.as_rule() { Rule::Void => VoidOrTypeUse::Void, - Rule::TypeUse => VoidOrTypeUse::TypeUse(Box::new( - build_type_use(declared_type_pair) - )), + Rule::TypeUse => VoidOrTypeUse::TypeUse(Box::new(build_type_use(declared_type_pair))), _ => unreachable!(), }; - - let references = inner.next().map(|ref_list_pair| { - expect_and_use(ref_list_pair, Rule::RefList, build_references) - }).unwrap_or(References(vec![])); - + + let references = inner + .next() + .map(|ref_list_pair| expect_and_use(ref_list_pair, Rule::RefList, build_references)) + .unwrap_or(References(vec![])); + ReturnType { declared_type, references, @@ -197,12 +201,17 @@ fn build_references(ref_list_pair: Pair) -> References { let mut identifiers: Vec = vec![]; for pair in ref_list_pair.into_inner() { match pair.as_rule() { - Rule::Ref => {}, + Rule::Ref => {} Rule::Identifier => { identifiers.push(build_identifier(pair)); - }, + } _ => unreachable!(), } } - References(identifiers.into_iter().map(|identifier| Reference(identifier)).collect()) + References( + identifiers + .into_iter() + .map(|identifier| Reference(identifier)) + .collect(), + ) }