mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 06:14:46 +00:00
Revise ExtractSpaces for HasImpls
Make it produce the one non-space variant, so you don't have to match on it afterwards
This commit is contained in:
parent
a85b70c355
commit
cb084c9738
1 changed files with 42 additions and 1 deletions
|
@ -1108,7 +1108,6 @@ impl_extract_spaces!(Tag);
|
|||
impl_extract_spaces!(AssignedField<T>);
|
||||
impl_extract_spaces!(TypeAnnotation);
|
||||
impl_extract_spaces!(HasAbility);
|
||||
impl_extract_spaces!(HasImpls);
|
||||
|
||||
impl<'a, T: Copy> ExtractSpaces<'a> for Spaced<'a, T> {
|
||||
type Item = T;
|
||||
|
@ -1161,3 +1160,45 @@ impl<'a, T: Copy> ExtractSpaces<'a> for Spaced<'a, T> {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> ExtractSpaces<'a> for HasImpls<'a> {
|
||||
type Item = Collection<'a, Loc<AssignedField<'a, Expr<'a>>>>;
|
||||
|
||||
fn extract_spaces(&self) -> Spaces<'a, Self::Item> {
|
||||
match self {
|
||||
HasImpls::HasImpls(inner) => Spaces {
|
||||
before: &[],
|
||||
item: *inner,
|
||||
after: &[],
|
||||
},
|
||||
HasImpls::SpaceBefore(item, before) => match item {
|
||||
HasImpls::HasImpls(inner) => Spaces {
|
||||
before: before,
|
||||
item: *inner,
|
||||
after: &[],
|
||||
},
|
||||
HasImpls::SpaceBefore(_, _) => todo!(),
|
||||
HasImpls::SpaceAfter(HasImpls::HasImpls(inner), after) => Spaces {
|
||||
before,
|
||||
item: *inner,
|
||||
after,
|
||||
},
|
||||
HasImpls::SpaceAfter(_, _) => todo!(),
|
||||
},
|
||||
HasImpls::SpaceAfter(item, after) => match item {
|
||||
HasImpls::HasImpls(inner) => Spaces {
|
||||
before: &[],
|
||||
item: *inner,
|
||||
after,
|
||||
},
|
||||
HasImpls::SpaceBefore(HasImpls::HasImpls(inner), before) => Spaces {
|
||||
before,
|
||||
item: *inner,
|
||||
after,
|
||||
},
|
||||
HasImpls::SpaceBefore(_, _) => todo!(),
|
||||
HasImpls::SpaceAfter(_, _) => todo!(),
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue