[clang] [NFC][clang-scan-deps] Refine the implementation of dependency_directives_scan::Token::isOneOf (PR #150433)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 24 07:47:18 PDT 2025
https://github.com/yronglin created https://github.com/llvm/llvm-project/pull/150433
Use fold expression to refine the implementation of `dependency_directives_scan::Token::isOneOf`.
>From efe913af00f8a6451db762eb83e660e24cf55908 Mon Sep 17 00:00:00 2001
From: yronglin <yronglin777 at gmail.com>
Date: Thu, 24 Jul 2025 22:45:40 +0800
Subject: [PATCH] [NFC][clang-scan-deps] Refine the implementation of
dependency_directives_scan::Token::isOneOf
Signed-off-by: yronglin <yronglin777 at gmail.com>
---
clang/include/clang/Lex/DependencyDirectivesScanner.h | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/clang/include/clang/Lex/DependencyDirectivesScanner.h b/clang/include/clang/Lex/DependencyDirectivesScanner.h
index acdc9e2bf9aa4..f9fec3998ca53 100644
--- a/clang/include/clang/Lex/DependencyDirectivesScanner.h
+++ b/clang/include/clang/Lex/DependencyDirectivesScanner.h
@@ -47,11 +47,10 @@ struct Token {
bool is(tok::TokenKind K) const { return Kind == K; }
bool isNot(tok::TokenKind K) const { return Kind != K; }
- bool isOneOf(tok::TokenKind K1, tok::TokenKind K2) const {
- return is(K1) || is(K2);
- }
- template <typename... Ts> bool isOneOf(tok::TokenKind K1, Ts... Ks) const {
- return is(K1) || isOneOf(Ks...);
+ template <typename... Ts> bool isOneOf(Ts... Ks) const {
+ static_assert(sizeof...(Ts) > 0,
+ "requires at least one tok::TokenKind specified");
+ return (is(Ks) || ...);
}
};
More information about the cfe-commits
mailing list