================ @@ -469,18 +473,23 @@ UseTrailingReturnTypeCheck::UseTrailingReturnTypeCheck( void UseTrailingReturnTypeCheck::storeOptions( ClangTidyOptions::OptionMap &Opts) { + Options.store(Opts, "WarnOnNonTrailingVoid", WarnOnNonTrailingVoid); Options.store(Opts, "TransformFunctions", TransformFunctions); Options.store(Opts, "TransformLambdas", TransformLambdas); } void UseTrailingReturnTypeCheck::registerMatchers(MatchFinder *Finder) { + const auto HasNoWrittenReturnType = + anyOf(cxxConversionDecl(), cxxConstructorDecl(), cxxDestructorDecl()); + auto F = - functionDecl( - unless(anyOf( - hasTrailingReturn(), returns(voidType()), cxxConversionDecl(), + traverse( + TK_IgnoreUnlessSpelledInSource, + functionDecl(unless(anyOf( + hasTrailingReturn(), HasNoWrittenReturnType, + WarnOnNonTrailingVoid ? unless(anything()) : returns(voidType()), cxxMethodDecl( - anyOf(isImplicit(), - hasParent(cxxRecordDecl(hasParent(lambdaExpr())))))))) + hasParent(cxxRecordDecl(hasParent(lambdaExpr())))))))) ---------------- 5chmidti wrote:
This last hasParent won't work. cxxRecordDecl::get parent returns a DeclContext, which can not be a lambda expression. https://github.com/llvm/llvm-project/pull/129406 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits