@@ -46,7 +46,7 @@ class DotClangTidyCache : private FileCache {
46
46
[this ](std::optional<llvm::StringRef> Data) {
47
47
Value.reset ();
48
48
if (Data && !Data->empty ()) {
49
- tidy::DiagCallback Diagnostics = [](const llvm::SMDiagnostic &D) {
49
+ auto Diagnostics = [](const llvm::SMDiagnostic &D) {
50
50
switch (D.getKind ()) {
51
51
case llvm::SourceMgr::DK_Error:
52
52
elog (" tidy-config error at {0}:{1}:{2}: {3}" , D.getFilename (),
@@ -159,12 +159,15 @@ TidyProviderRef provideEnvironment() {
159
159
return Ret;
160
160
}();
161
161
162
- if (User)
163
- return
164
- [](tidy::ClangTidyOptions &Opts, llvm::StringRef) { Opts.User = User; };
162
+ if (User) {
163
+ static const auto Provider = [](tidy::ClangTidyOptions &Opts, llvm::StringRef) { Opts.User = User; };
164
+ return Provider;
165
+ }
165
166
// FIXME: Once function_ref and unique_function operator= operators handle
166
167
// null values, this can return null.
167
- return [](tidy::ClangTidyOptions &, llvm::StringRef) {};
168
+ static const auto EmptyProvider = [](tidy::ClangTidyOptions &,
169
+ llvm::StringRef) {};
170
+ return EmptyProvider;
168
171
}
169
172
170
173
TidyProviderRef provideDefaultChecks () {
@@ -178,10 +181,11 @@ TidyProviderRef provideDefaultChecks() {
178
181
" bugprone-suspicious-missing-comma" , " bugprone-unused-raii" ,
179
182
" bugprone-unused-return-value" , " misc-unused-using-decls" ,
180
183
" misc-unused-alias-decls" , " misc-definitions-in-headers" );
181
- return [](tidy::ClangTidyOptions &Opts, llvm::StringRef) {
184
+ static auto Provider = [](tidy::ClangTidyOptions &Opts, llvm::StringRef) {
182
185
if (!Opts.Checks || Opts.Checks ->empty ())
183
186
Opts.Checks = DefaultChecks;
184
187
};
188
+ return Provider;
185
189
}
186
190
187
191
TidyProvider addTidyChecks (llvm::StringRef Checks,
@@ -252,7 +256,7 @@ TidyProvider disableUnusableChecks(llvm::ArrayRef<std::string> ExtraBadChecks) {
252
256
}
253
257
254
258
TidyProviderRef provideClangdConfig () {
255
- return [](tidy::ClangTidyOptions &Opts, llvm::StringRef) {
259
+ static const auto Provider = [](tidy::ClangTidyOptions &Opts, llvm::StringRef) {
256
260
const auto &CurTidyConfig = Config::current ().Diagnostics .ClangTidy ;
257
261
if (!CurTidyConfig.Checks .empty ())
258
262
mergeCheckList (Opts.Checks , CurTidyConfig.Checks );
@@ -262,6 +266,7 @@ TidyProviderRef provideClangdConfig() {
262
266
tidy::ClangTidyOptions::ClangTidyValue (
263
267
CheckOption.getValue (), 10000U ));
264
268
};
269
+ return Provider;
265
270
}
266
271
267
272
TidyProvider provideClangTidyFiles (ThreadsafeFS &TFS) {
0 commit comments