--- a/crates/ide_db/src/helpers.rs +++ b/crates/ide_db/src/helpers.rs @@ -309,7 +309,7 @@ pub fn lint_eq_or_in_group(lint: &str, lint_is: &str) -> bool { pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option> { let r_paren = input.r_paren_token(); let tokens = - input.syntax().children_with_tokens().skip(1).map_while(|it| match it.into_token() { + input.syntax().children_with_tokens().skip(1).map(|it| match it.into_token() { // seeing a keyword means the attribute is unclosed so stop parsing here Some(tok) if tok.kind().is_keyword() => None, // don't include the right token tree parenthesis if it exists @@ -317,7 +317,7 @@ pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option None, Some(tok) => Some(tok), - }); + }).take_while(|tok| tok.is_some()).map(|tok| tok.unwrap()); let input_expressions = tokens.into_iter().group_by(|tok| tok.kind() == T![,]); let paths = input_expressions .into_iter()