[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