parmVarDecl(hasType(qualType(isConstQualified()))).bind("param");
Finder->addMatcher(
functionDecl(unless(isDefinition()),
- // Lambdas are always their own definition, but they
- // generate a non-definition FunctionDecl too. Ignore those.
- // Class template instantiations have a non-definition
- // CXXMethodDecl for methods that aren't used in this
- // translation unit. Ignore those, as the template will have
- // already been checked.
- unless(cxxMethodDecl(ofClass(cxxRecordDecl(anyOf(
- isLambda(), ast_matchers::isTemplateInstantiation()))))),
has(typeLoc(forEach(ConstParamDecl))))
.bind("func"),
this);
void registerMatchers(ast_matchers::MatchFinder *Finder) override;
void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
+ llvm::Optional<TraversalKind> getCheckTraversalKind() const override {
+ return TK_IgnoreUnlessSpelledInSource;
+ }
};
} // namespace readability