我正在编写一个整洁的检查来自动重命名某种类型的某些变量。我可以成功地将他们的声明与 matcher 匹配varDecl(hasType(asString("class MyType")))
。但后来我想重命名这些变量及其用法。如果我使用FixItHint::CreateReplacement()
,它只会替换声明中的名称,而不是所有用法。
我找到了一个RenamerClangTidyCheck
,这似乎正是我需要的:
/// Base class for clang-tidy checks that want to flag declarations and/or
/// macros for renaming based on customizable criteria.
然而,它是通过重写虚函数来定制的getDeclFailureInfo()
,这些虚函数是从ClangTidyCheck::check()
函数调用的,并且手头没有任何匹配器,它们使用NamedDecl
. 我只对变量声明感兴趣,所以我可以将它转换为VarDecl
,但是我如何确保这个特定VarDecl
对应于一个类型为 的变量MyType
?