1

我正在编写一个整洁的检查来自动重命名某种类型的某些变量。我可以成功地将他们的声明与 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

4

0 回答 0