Моя попытка заключается в следующем:
Код: Выделить всё
void MyCheck::check(const MatchFinder::MatchResult &Result) {
const auto *MatchedDecl = Result.Nodes.getNodeAs("x");
if (RQ_None != MatchedDecl->getRefQualifier()) {
return;
}
diag(MatchedDecl->getBeginLoc(),
"Member Function %0 should have lvalue ref qualifier.")
getTypeSpecEndLoc().getLocWithOffset(1),
"Add ref-qualifier for lvalues.", DiagnosticIDs::Note);
}
Код: Выделить всё
Test& modify1();
Код: Выделить всё
Test& modify1() &;
Код: Выделить всё
auto modify2() -> Test&
Код: Выделить всё
auto modify2() -> Test& &;
Вместо getTypeSpecEndLoc().getLocWithOffset(1) я должен использовать местоположение исходного кода, где ожидаются реф-квалификаторы. Как определить местоположение с помощью AST-матчера?
Подробнее здесь: https://stackoverflow.com/questions/790 ... tidy-check