Make helper method less specific

This commit is contained in:
btwotwo 2022-10-06 21:34:19 +02:00
parent 8a92910f97
commit f458ea15d6
No known key found for this signature in database
GPG key ID: D456A0349D73A0A3
2 changed files with 5 additions and 7 deletions

View file

@ -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(),

View file

@ -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)
}