diff options
Diffstat (limited to 'pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch')
-rw-r--r-- | pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch b/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch new file mode 100644 index 00000000000..6114f51831b --- /dev/null +++ b/pkgs/development/tools/rust/rust-analyzer/no-1-57-map-while.patch @@ -0,0 +1,20 @@ +--- 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<Vec<ast::Path>> { + 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<Vec<ast::Pat + // only nodes that we can find are other TokenTrees, those are unexpected in this parse though + None => 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() |