NonStdMoveChecker.h (812B)
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/. */ 4 5 #ifndef NonStdMoveChecker_h__ 6 #define NonStdMoveChecker_h__ 7 8 #include "plugin.h" 9 10 class NonStdMoveChecker final : public BaseCheck { 11 public: 12 NonStdMoveChecker(StringRef CheckName, ContextType *Context = nullptr) 13 : BaseCheck(CheckName, Context) {} 14 void registerMatchers(MatchFinder *AstMatcher) override; 15 void check(const MatchFinder::MatchResult &Result) override; 16 17 private: 18 CompilerInstance *CI; 19 20 static 21 #if CLANG_VERSION_FULL >= 1600 22 std::optional<FixItHint> 23 #else 24 Optional<FixItHint> 25 #endif 26 makeFixItHint(const MatchFinder::MatchResult &Result, const Expr *TargetExpr); 27 }; 28 29 #endif