Fix formatting.
This commit is contained in:
parent
82af6b4dfb
commit
e4c93f319d
@ -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<Rule>) -> FunctionTypeUse {
|
||||
}
|
||||
Rule::ReturnType => {
|
||||
return_type = Some(build_return_type(inner_pair));
|
||||
},
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
@ -173,20 +178,19 @@ fn build_function_input_arguments(pair: Pair<Rule>) -> InputArguments {
|
||||
|
||||
fn build_return_type(return_type_pair: Pair<Rule>) -> 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<Rule>) -> References {
|
||||
let mut identifiers: Vec<Identifier> = 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(),
|
||||
)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user