1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 #ifndef RefCountedInsideLambdaChecker_h__
6 #define RefCountedInsideLambdaChecker_h__
10 class RefCountedInsideLambdaChecker
: public BaseCheck
{
12 RefCountedInsideLambdaChecker(StringRef CheckName
,
13 ContextType
*Context
= nullptr)
14 : BaseCheck(CheckName
, Context
) {}
15 void registerMatchers(MatchFinder
*AstMatcher
) override
;
16 void check(const MatchFinder::MatchResult
&Result
) override
;
18 void emitDiagnostics(SourceLocation Loc
, StringRef Name
, QualType Type
);
21 class ThisVisitor
: public RecursiveASTVisitor
<ThisVisitor
> {
23 explicit ThisVisitor(RefCountedInsideLambdaChecker
&Checker
)
26 bool VisitCXXThisExpr(CXXThisExpr
*This
);
29 RefCountedInsideLambdaChecker
&Checker
;