refactor helper function to work with function taking expression enum instead of break expression

This commit is contained in:
Moritz Vetter 2022-02-13 12:04:51 +01:00
parent 1c074499f3
commit cad0cf6950
2 changed files with 15 additions and 10 deletions

View file

@ -197,11 +197,14 @@ fn highlight_break_points(token: SyntaxToken) -> Option<Vec<HighlightedRange>> {
label.as_ref().map(|it| it.syntax().text_range()),
);
highlights.extend(range.map(|range| HighlightedRange { category: None, range }));
for_each_break_expr(label, body, &mut |break_| {
let range = cover_range(
break_.break_token().map(|it| it.text_range()),
break_.lifetime().map(|it| it.syntax().text_range()),
);
for_each_break_expr(label, body, &mut |expr| {
let range: Option<TextRange> = match expr {
ast::Expr::BreakExpr(break_) => cover_range(
break_.break_token().map(|it| it.text_range()),
break_.lifetime().map(|it| it.syntax().text_range()),
),
_ => None,
};
highlights.extend(range.map(|range| HighlightedRange { category: None, range }));
});
Some(highlights)