Skip to content

Commit

Permalink
Make TryCollectMany accept any sort of FromIterator.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ivorforce committed Apr 26, 2024
1 parent 44a5ea1 commit 2ab017e
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
8 changes: 4 additions & 4 deletions src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,11 @@ impl<V> ErrInRange<RResult<V>> for RResult<V> {
}

pub trait TryCollectMany<R> {
fn try_collect_many(self) -> RResult<Vec<R>>;
fn try_collect_many(self) -> RResult<R>;
}

impl<V, I: Iterator<Item=RResult<V>>> TryCollectMany<V> for I {
fn try_collect_many(self) -> RResult<Vec<V>> {
impl<V, I: Iterator<Item=RResult<V>>, R: FromIterator<V>> TryCollectMany<R> for I {
fn try_collect_many(self) -> RResult<R> {
let mut values = vec![];
let mut errors = vec![];

Expand All @@ -166,7 +166,7 @@ impl<V, I: Iterator<Item=RResult<V>>> TryCollectMany<V> for I {
}

return match errors.is_empty() {
true => Ok(values),
true => Ok(R::from_iter(values)),
false => Err(errors),
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/program/generics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ impl TypeForest {
let identity = self._register(struct_.id);
self.bind_identity(identity, type_)?;
Ok::<(&Rc<Trait>, Uuid), Vec<RuntimeError>>((struct_, identity))
}).try_collect()?;
}).try_collect_many()?;

let mut replace_map = HashMap::new();
for (other_identity, unit) in self.identity_to_type.iter() {
Expand Down
2 changes: 1 addition & 1 deletion src/resolver/grammar/precedence_order.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub fn resolve_precedence_order(body: &ast::Expression) -> RResult<Vec<Rc<Preced
return Err(error);
};

let order = array.arguments.iter().map(|arg| {
let order: Vec<Rc<PrecedenceGroup>> = array.arguments.iter().map(|arg| {
if arg.value.key.is_some() || arg.value.type_declaration.is_some() {
return Err(error.clone())
}
Expand Down

0 comments on commit 2ab017e

Please sign in to comment.