Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--crates/ide-db/src/syntax_helpers/format_string.rs4
-rw-r--r--crates/ide-db/src/syntax_helpers/node_ext.rs8
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)
}