Use syn::Error's combine() API instead of Vec<syn::Error>

This commit is contained in:
David Tolnay
2023-05-25 08:09:24 -07:00
parent a0f850f15b
commit 7c2c12aa43
4 changed files with 16 additions and 18 deletions
+12 -5
View File
@@ -44,12 +44,19 @@ impl Ctxt {
}
/// Consume this object, producing a formatted error string if there are errors.
pub fn check(self) -> Result<(), Vec<syn::Error>> {
let errors = self.errors.borrow_mut().take().unwrap();
match errors.len() {
0 => Ok(()),
_ => Err(errors),
pub fn check(self) -> syn::Result<()> {
let mut errors = self.errors.borrow_mut().take().unwrap().into_iter();
let mut combined = match errors.next() {
Some(first) => first,
None => return Ok(()),
};
for rest in errors {
combined.combine(rest);
}
Err(combined)
}
}