[clang-tools-extra] [clang-tidy] Flag consecutive scoped_locks in use-scoped-lock (PR #209272)

Yanzuo Liu via cfe-commits cfe-commits at lists.llvm.org
Mon Jul 13 19:20:41 PDT 2026


================
@@ -123,19 +143,28 @@ void UseScopedLockCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
 void UseScopedLockCheck::registerMatchers(MatchFinder *Finder) {
   const auto LockGuardClassDecl =
       namedDecl(hasName("lock_guard"), isInStdNamespace());
+  const auto ScopedLockClassDecl =
+      namedDecl(hasName("scoped_lock"), isInStdNamespace());
+  const auto LockClassDecl = anyOf(LockGuardClassDecl, ScopedLockClassDecl);
 
   const auto LockGuardType =
       qualType(anyOf(hasUnqualifiedDesugaredType(
                          recordType(hasDeclaration(LockGuardClassDecl))),
                      hasUnqualifiedDesugaredType(templateSpecializationType(
                          hasDeclaration(LockGuardClassDecl)))));
 
-  const auto LockVarDecl = varDecl(hasType(LockGuardType));
+  const auto LockType = qualType(anyOf(
+      hasUnqualifiedDesugaredType(recordType(hasDeclaration(LockClassDecl))),
+      hasUnqualifiedDesugaredType(
+          templateSpecializationType(hasDeclaration(LockClassDecl)))));
----------------
zwuis wrote:

```cpp
qualType(hasUnqualifiedDesugaredType(mapAnyOf(recordType, templateSpecializationType).with(hasDeclaration(LockClassDecl))))
```


https://github.com/llvm/llvm-project/pull/209272


More information about the cfe-commits mailing list