Unnamed repository; edit this file 'description' to name the repository.
Make helper method less specific
| -rw-r--r-- | crates/ide-db/src/syntax_helpers/format_string.rs | 4 | ||||
| -rw-r--r-- | crates/ide-db/src/syntax_helpers/node_ext.rs | 8 |
2 files changed, 5 insertions, 7 deletions
diff --git a/crates/ide-db/src/syntax_helpers/format_string.rs b/crates/ide-db/src/syntax_helpers/format_string.rs index 8836167630..b3e227ddd2 100644 --- a/crates/ide-db/src/syntax_helpers/format_string.rs +++ b/crates/ide-db/src/syntax_helpers/format_string.rs @@ -4,7 +4,7 @@ use syntax::{ TextRange, TextSize, }; -use super::node_ext::get_outer_macro_name; +use super::node_ext::get_outer_macro; pub fn is_format_string(string: &ast::String) -> bool { // Check if `string` is a format string argument of a macro invocation. @@ -16,7 +16,7 @@ pub fn is_format_string(string: &ast::String) -> bool { // This setup lets us correctly highlight the components of `concat!("{}", "bla")` format // strings. It still fails for `concat!("{", "}")`, but that is rare. (|| { - let name = get_outer_macro_name(string)?; + let name = get_outer_macro(string)?.path()?.segment()?.name_ref()?; if !matches!( name.text().as_str(), diff --git a/crates/ide-db/src/syntax_helpers/node_ext.rs b/crates/ide-db/src/syntax_helpers/node_ext.rs index 5265b3d161..9cfcdfb77b 100644 --- a/crates/ide-db/src/syntax_helpers/node_ext.rs +++ b/crates/ide-db/src/syntax_helpers/node_ext.rs @@ -2,7 +2,7 @@ use itertools::Itertools; use parser::T; use syntax::{ - ast::{self, HasLoopBody, NameRef, PathSegmentKind, VisibilityKind}, + ast::{self, HasLoopBody, MacroCall, PathSegmentKind, VisibilityKind}, AstNode, AstToken, Preorder, RustLanguage, WalkEvent, }; @@ -458,9 +458,7 @@ pub fn parse_tt_as_comma_sep_paths(input: ast::TokenTree) -> Option<Vec<ast::Pat Some(paths) } -pub fn get_outer_macro_name(string: &ast::String) -> Option<NameRef> { +pub fn get_outer_macro(string: &ast::String) -> Option<MacroCall> { let macro_call = string.syntax().parent_ancestors().find_map(ast::MacroCall::cast)?; - let name = macro_call.path()?.segment()?.name_ref()?; - - Some(name) + Some(macro_call) } |