================ @@ -0,0 +1,40 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "DefaultLambdaCaptureCheck.h" +#include "clang/AST/ASTContext.h" +#include "clang/ASTMatchers/ASTMatchFinder.h" + +using namespace clang::ast_matchers; + +namespace clang::tidy::bugprone { + +namespace { +AST_MATCHER(LambdaExpr, hasDefaultCapture) { + return Node.getCaptureDefault() != LCD_None; +} + +} // namespace + +void DefaultLambdaCaptureCheck::registerMatchers(MatchFinder *Finder) { + Finder->addMatcher(lambdaExpr(hasDefaultCapture()).bind("lambda"), this); +} + +void DefaultLambdaCaptureCheck::check(const MatchFinder::MatchResult &Result) { + const auto *Lambda = Result.Nodes.getNodeAs<LambdaExpr>("lambda"); + assert(Lambda); + + SourceLocation DefaultCaptureLoc = Lambda->getCaptureDefaultLoc(); ---------------- vbvictor wrote:
> It's more question to @vbvictor and @localspook. I used > `misc-const-correctness` on my work code base and did not see any major > issues. However some internal conventions (like do not use `const` for local > RAII variables) prevent it from enabling on build stage. I will only try to enable this checker once premerge clang-tidy CI will be stable. Now I can see it sometimes randomly crush in `intall clang-tidy` stage, which is strange and need investigation. Without CI I see no reason to enable it because it's very easy to make violations of this check. Moreover, with [AllowedTypes](https://clang.llvm.org/extra/clang-tidy/checks/misc/const-correctness.html#cmdoption-arg-AllowedTypes) option we could ignore local raii variables like `lock_guards` etc.. https://github.com/llvm/llvm-project/pull/160150 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
