Coverage Report

Created: 2022-05-17 06:19

/Users/buildslave/jenkins/workspace/coverage/llvm-project/clang/lib/Format/FormatToken.h
Line
Count
Source (jump to first uncovered line)
1
//===--- FormatToken.h - Format C++ code ------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
///
9
/// \file
10
/// This file contains the declaration of the FormatToken, a wrapper
11
/// around Token with additional information related to formatting.
12
///
13
//===----------------------------------------------------------------------===//
14
15
#ifndef LLVM_CLANG_LIB_FORMAT_FORMATTOKEN_H
16
#define LLVM_CLANG_LIB_FORMAT_FORMATTOKEN_H
17
18
#include "clang/Basic/IdentifierTable.h"
19
#include "clang/Basic/OperatorPrecedence.h"
20
#include "clang/Format/Format.h"
21
#include "clang/Lex/Lexer.h"
22
#include <memory>
23
#include <unordered_set>
24
25
namespace clang {
26
namespace format {
27
28
#define LIST_TOKEN_TYPES                                                       \
29
0
  TYPE(ArrayInitializerLSquare)                                                \
30
0
  TYPE(ArraySubscriptLSquare)                                                  \
31
0
  TYPE(AttributeColon)                                                         \
32
0
  TYPE(AttributeMacro)                                                         \
33
0
  TYPE(AttributeParen)                                                         \
34
0
  TYPE(AttributeSquare)                                                        \
35
0
  TYPE(BinaryOperator)                                                         \
36
0
  TYPE(BitFieldColon)                                                          \
37
0
  TYPE(BlockComment)                                                           \
38
0
  TYPE(BracedListLBrace)                                                       \
39
0
  TYPE(CastRParen)                                                             \
40
0
  TYPE(ClassLBrace)                                                            \
41
0
  TYPE(CompoundRequirementLBrace)                                              \
42
0
  TYPE(ConditionalExpr)                                                        \
43
0
  TYPE(ConflictAlternative)                                                    \
44
0
  TYPE(ConflictEnd)                                                            \
45
0
  TYPE(ConflictStart)                                                          \
46
0
  /* l_brace of if/for/while */                                                \
47
0
  TYPE(ControlStatementLBrace)                                                 \
48
0
  TYPE(CppCastLParen)                                                          \
49
0
  TYPE(CtorInitializerColon)                                                   \
50
0
  TYPE(CtorInitializerComma)                                                   \
51
0
  TYPE(DesignatedInitializerLSquare)                                           \
52
0
  TYPE(DesignatedInitializerPeriod)                                            \
53
0
  TYPE(DictLiteral)                                                            \
54
0
  TYPE(ElseLBrace)                                                             \
55
0
  TYPE(EnumLBrace)                                                             \
56
0
  TYPE(FatArrow)                                                               \
57
0
  TYPE(ForEachMacro)                                                           \
58
0
  TYPE(FunctionAnnotationRParen)                                               \
59
0
  TYPE(FunctionDeclarationName)                                                \
60
0
  TYPE(FunctionLBrace)                                                         \
61
0
  TYPE(FunctionLikeOrFreestandingMacro)                                        \
62
0
  TYPE(FunctionTypeLParen)                                                     \
63
0
  TYPE(IfMacro)                                                                \
64
0
  TYPE(ImplicitStringLiteral)                                                  \
65
0
  TYPE(InheritanceColon)                                                       \
66
0
  TYPE(InheritanceComma)                                                       \
67
0
  TYPE(InlineASMBrace)                                                         \
68
0
  TYPE(InlineASMColon)                                                         \
69
0
  TYPE(InlineASMSymbolicNameLSquare)                                           \
70
0
  TYPE(JavaAnnotation)                                                         \
71
0
  TYPE(JsComputedPropertyName)                                                 \
72
0
  TYPE(JsExponentiation)                                                       \
73
0
  TYPE(JsExponentiationEqual)                                                  \
74
0
  TYPE(JsPipePipeEqual)                                                        \
75
0
  TYPE(JsPrivateIdentifier)                                                    \
76
0
  TYPE(JsTypeColon)                                                            \
77
0
  TYPE(JsTypeOperator)                                                         \
78
0
  TYPE(JsTypeOptionalQuestion)                                                 \
79
0
  TYPE(JsAndAndEqual)                                                          \
80
0
  TYPE(LambdaArrow)                                                            \
81
0
  TYPE(LambdaLBrace)                                                           \
82
0
  TYPE(LambdaLSquare)                                                          \
83
0
  TYPE(LeadingJavaAnnotation)                                                  \
84
0
  TYPE(LineComment)                                                            \
85
0
  TYPE(MacroBlockBegin)                                                        \
86
0
  TYPE(MacroBlockEnd)                                                          \
87
0
  TYPE(ModulePartitionColon)                                                   \
88
0
  TYPE(NamespaceMacro)                                                         \
89
0
  TYPE(NonNullAssertion)                                                       \
90
0
  TYPE(NullCoalescingEqual)                                                    \
91
0
  TYPE(NullCoalescingOperator)                                                 \
92
0
  TYPE(NullPropagatingOperator)                                                \
93
0
  TYPE(ObjCBlockLBrace)                                                        \
94
0
  TYPE(ObjCBlockLParen)                                                        \
95
0
  TYPE(ObjCDecl)                                                               \
96
0
  TYPE(ObjCForIn)                                                              \
97
0
  TYPE(ObjCMethodExpr)                                                         \
98
0
  TYPE(ObjCMethodSpecifier)                                                    \
99
0
  TYPE(ObjCProperty)                                                           \
100
0
  TYPE(ObjCStringLiteral)                                                      \
101
0
  TYPE(OverloadedOperator)                                                     \
102
0
  TYPE(OverloadedOperatorLParen)                                               \
103
0
  TYPE(PointerOrReference)                                                     \
104
0
  TYPE(PureVirtualSpecifier)                                                   \
105
0
  TYPE(RangeBasedForLoopColon)                                                 \
106
0
  TYPE(RecordLBrace)                                                           \
107
0
  TYPE(RegexLiteral)                                                           \
108
0
  TYPE(RequiresClause)                                                         \
109
0
  TYPE(RequiresClauseInARequiresExpression)                                    \
110
0
  TYPE(RequiresExpression)                                                     \
111
0
  TYPE(RequiresExpressionLBrace)                                               \
112
0
  TYPE(RequiresExpressionLParen)                                               \
113
0
  TYPE(SelectorName)                                                           \
114
0
  TYPE(StartOfName)                                                            \
115
0
  TYPE(StatementAttributeLikeMacro)                                            \
116
0
  TYPE(StatementMacro)                                                         \
117
0
  TYPE(StructLBrace)                                                           \
118
0
  TYPE(StructuredBindingLSquare)                                               \
119
0
  TYPE(TemplateCloser)                                                         \
120
0
  TYPE(TemplateOpener)                                                         \
121
0
  TYPE(TemplateString)                                                         \
122
0
  TYPE(ProtoExtensionLSquare)                                                  \
123
0
  TYPE(TrailingAnnotation)                                                     \
124
0
  TYPE(TrailingReturnArrow)                                                    \
125
0
  TYPE(TrailingUnaryOperator)                                                  \
126
0
  TYPE(TypeDeclarationParen)                                                   \
127
0
  TYPE(TypenameMacro)                                                          \
128
0
  TYPE(UnaryOperator)                                                          \
129
0
  TYPE(UnionLBrace)                                                            \
130
0
  TYPE(UntouchableMacroFunc)                                                   \
131
0
  TYPE(CSharpStringLiteral)                                                    \
132
0
  TYPE(CSharpNamedArgumentColon)                                               \
133
0
  TYPE(CSharpNullable)                                                         \
134
0
  TYPE(CSharpNullConditionalLSquare)                                           \
135
0
  TYPE(CSharpGenericTypeConstraint)                                            \
136
0
  TYPE(CSharpGenericTypeConstraintColon)                                       \
137
0
  TYPE(CSharpGenericTypeConstraintComma)                                       \
138
0
  TYPE(Unknown)
139
140
/// Determines the semantic type of a syntactic token, e.g. whether "<" is a
141
/// template opener or binary operator.
142
enum TokenType : uint8_t {
143
#define TYPE(X) TT_##X,
144
  LIST_TOKEN_TYPES
145
#undef TYPE
146
      NUM_TOKEN_TYPES
147
};
148
149
/// Determines the name of a token type.
150
const char *getTokenTypeName(TokenType Type);
151
152
// Represents what type of block a set of braces open.
153
enum BraceBlockKind { BK_Unknown, BK_Block, BK_BracedInit };
154
155
// The packing kind of a function's parameters.
156
enum ParameterPackingKind { PPK_BinPacked, PPK_OnePerLine, PPK_Inconclusive };
157
158
enum FormatDecision { FD_Unformatted, FD_Continue, FD_Break };
159
160
/// Roles a token can take in a configured macro expansion.
161
enum MacroRole {
162
  /// The token was expanded from a macro argument when formatting the expanded
163
  /// token sequence.
164
  MR_ExpandedArg,
165
  /// The token is part of a macro argument that was previously formatted as
166
  /// expansion when formatting the unexpanded macro call.
167
  MR_UnexpandedArg,
168
  /// The token was expanded from a macro definition, and is not visible as part
169
  /// of the macro call.
170
  MR_Hidden,
171
};
172
173
struct FormatToken;
174
175
/// Contains information on the token's role in a macro expansion.
176
///
177
/// Given the following definitions:
178
/// A(X) = [ X ]
179
/// B(X) = < X >
180
/// C(X) = X
181
///
182
/// Consider the macro call:
183
/// A({B(C(C(x)))}) -> [{<x>}]
184
///
185
/// In this case, the tokens of the unexpanded macro call will have the
186
/// following relevant entries in their macro context (note that formatting
187
/// the unexpanded macro call happens *after* formatting the expanded macro
188
/// call):
189
///                   A( { B( C( C(x) ) ) } )
190
/// Role:             NN U NN NN NNUN N N U N  (N=None, U=UnexpandedArg)
191
///
192
///                   [  { <       x    > } ]
193
/// Role:             H  E H       E    H E H  (H=Hidden, E=ExpandedArg)
194
/// ExpandedFrom[0]:  A  A A       A    A A A
195
/// ExpandedFrom[1]:       B       B    B
196
/// ExpandedFrom[2]:               C
197
/// ExpandedFrom[3]:               C
198
/// StartOfExpansion: 1  0 1       2    0 0 0
199
/// EndOfExpansion:   0  0 0       2    1 0 1
200
struct MacroExpansion {
201
50
  MacroExpansion(MacroRole Role) : Role(Role) {}
202
203
  /// The token's role in the macro expansion.
204
  /// When formatting an expanded macro, all tokens that are part of macro
205
  /// arguments will be MR_ExpandedArg, while all tokens that are not visible in
206
  /// the macro call will be MR_Hidden.
207
  /// When formatting an unexpanded macro call, all tokens that are part of
208
  /// macro arguments will be MR_UnexpandedArg.
209
  MacroRole Role;
210
211
  /// The stack of macro call identifier tokens this token was expanded from.
212
  llvm::SmallVector<FormatToken *, 1> ExpandedFrom;
213
214
  /// The number of expansions of which this macro is the first entry.
215
  unsigned StartOfExpansion = 0;
216
217
  /// The number of currently open expansions in \c ExpandedFrom this macro is
218
  /// the last token in.
219
  unsigned EndOfExpansion = 0;
220
};
221
222
class TokenRole;
223
class AnnotatedLine;
224
225
/// A wrapper around a \c Token storing information about the
226
/// whitespace characters preceding it.
227
struct FormatToken {
228
  FormatToken()
229
      : HasUnescapedNewline(false), IsMultiline(false), IsFirst(false),
230
        MustBreakBefore(false), IsUnterminatedLiteral(false),
231
        CanBreakBefore(false), ClosesTemplateDeclaration(false),
232
        StartsBinaryExpression(false), EndsBinaryExpression(false),
233
        PartOfMultiVariableDeclStmt(false), ContinuesLineCommentSection(false),
234
        Finalized(false), ClosesRequiresClause(false), BlockKind(BK_Unknown),
235
        Decision(FD_Unformatted), PackingKind(PPK_Inconclusive),
236
1.10M
        TypeIsFinalized(false), Type(TT_Unknown) {}
237
238
  /// The \c Token.
239
  Token Tok;
240
241
  /// The raw text of the token.
242
  ///
243
  /// Contains the raw token text without leading whitespace and without leading
244
  /// escaped newlines.
245
  StringRef TokenText;
246
247
  /// A token can have a special role that can carry extra information
248
  /// about the token's formatting.
249
  /// FIXME: Make FormatToken for parsing and AnnotatedToken two different
250
  /// classes and make this a unique_ptr in the AnnotatedToken class.
251
  std::shared_ptr<TokenRole> Role;
252
253
  /// The range of the whitespace immediately preceding the \c Token.
254
  SourceRange WhitespaceRange;
255
256
  /// Whether there is at least one unescaped newline before the \c
257
  /// Token.
258
  unsigned HasUnescapedNewline : 1;
259
260
  /// Whether the token text contains newlines (escaped or not).
261
  unsigned IsMultiline : 1;
262
263
  /// Indicates that this is the first token of the file.
264
  unsigned IsFirst : 1;
265
266
  /// Whether there must be a line break before this token.
267
  ///
268
  /// This happens for example when a preprocessor directive ended directly
269
  /// before the token.
270
  unsigned MustBreakBefore : 1;
271
272
  /// Set to \c true if this token is an unterminated literal.
273
  unsigned IsUnterminatedLiteral : 1;
274
275
  /// \c true if it is allowed to break before this token.
276
  unsigned CanBreakBefore : 1;
277
278
  /// \c true if this is the ">" of "template<..>".
279
  unsigned ClosesTemplateDeclaration : 1;
280
281
  /// \c true if this token starts a binary expression, i.e. has at least
282
  /// one fake l_paren with a precedence greater than prec::Unknown.
283
  unsigned StartsBinaryExpression : 1;
284
  /// \c true if this token ends a binary expression.
285
  unsigned EndsBinaryExpression : 1;
286
287
  /// Is this token part of a \c DeclStmt defining multiple variables?
288
  ///
289
  /// Only set if \c Type == \c TT_StartOfName.
290
  unsigned PartOfMultiVariableDeclStmt : 1;
291
292
  /// Does this line comment continue a line comment section?
293
  ///
294
  /// Only set to true if \c Type == \c TT_LineComment.
295
  unsigned ContinuesLineCommentSection : 1;
296
297
  /// If \c true, this token has been fully formatted (indented and
298
  /// potentially re-formatted inside), and we do not allow further formatting
299
  /// changes.
300
  unsigned Finalized : 1;
301
302
  /// \c true if this is the last token within requires clause.
303
  unsigned ClosesRequiresClause : 1;
304
305
private:
306
  /// Contains the kind of block if this token is a brace.
307
  unsigned BlockKind : 2;
308
309
public:
310
1.32M
  BraceBlockKind getBlockKind() const {
311
1.32M
    return static_cast<BraceBlockKind>(BlockKind);
312
1.32M
  }
313
102k
  void setBlockKind(BraceBlockKind BBK) {
314
102k
    BlockKind = BBK;
315
102k
    assert(getBlockKind() == BBK && "BraceBlockKind overflow!");
316
102k
  }
317
318
private:
319
  /// Stores the formatting decision for the token once it was made.
320
  unsigned Decision : 2;
321
322
public:
323
961k
  FormatDecision getDecision() const {
324
961k
    return static_cast<FormatDecision>(Decision);
325
961k
  }
326
346k
  void setDecision(FormatDecision D) {
327
346k
    Decision = D;
328
346k
    assert(getDecision() == D && "FormatDecision overflow!");
329
346k
  }
330
331
private:
332
  /// If this is an opening parenthesis, how are the parameters packed?
333
  unsigned PackingKind : 2;
334
335
public:
336
549k
  ParameterPackingKind getPackingKind() const {
337
549k
    return static_cast<ParameterPackingKind>(PackingKind);
338
549k
  }
339
81.9k
  void setPackingKind(ParameterPackingKind K) {
340
81.9k
    PackingKind = K;
341
81.9k
    assert(getPackingKind() == K && "ParameterPackingKind overflow!");
342
81.9k
  }
343
344
private:
345
  unsigned TypeIsFinalized : 1;
346
  TokenType Type;
347
348
public:
349
  /// Returns the token's type, e.g. whether "<" is a template opener or
350
  /// binary operator.
351
225M
  TokenType getType() const { return Type; }
352
1.33M
  void setType(TokenType T) {
353
1.33M
    assert((!TypeIsFinalized || T == Type) &&
354
1.33M
           "Please use overwriteFixedType to change a fixed type.");
355
0
    Type = T;
356
1.33M
  }
357
  /// Sets the type and also the finalized flag. This prevents the type to be
358
  /// reset in TokenAnnotator::resetTokenMetadata(). If the type needs to be set
359
  /// to another one please use overwriteFixedType, or even better remove the
360
  /// need to reassign the type.
361
40.1k
  void setFinalizedType(TokenType T) {
362
40.1k
    Type = T;
363
40.1k
    TypeIsFinalized = true;
364
40.1k
  }
365
1.64k
  void overwriteFixedType(TokenType T) {
366
1.64k
    TypeIsFinalized = false;
367
1.64k
    setType(T);
368
1.64k
  }
369
1.10M
  bool isTypeFinalized() const { return TypeIsFinalized; }
370
371
  /// The number of newlines immediately before the \c Token.
372
  ///
373
  /// This can be used to determine what the user wrote in the original code
374
  /// and thereby e.g. leave an empty line between two function definitions.
375
  unsigned NewlinesBefore = 0;
376
377
  /// The offset just past the last '\n' in this token's leading
378
  /// whitespace (relative to \c WhiteSpaceStart). 0 if there is no '\n'.
379
  unsigned LastNewlineOffset = 0;
380
381
  /// The width of the non-whitespace parts of the token (or its first
382
  /// line for multi-line tokens) in columns.
383
  /// We need this to correctly measure number of columns a token spans.
384
  unsigned ColumnWidth = 0;
385
386
  /// Contains the width in columns of the last line of a multi-line
387
  /// token.
388
  unsigned LastLineColumnWidth = 0;
389
390
  /// The number of spaces that should be inserted before this token.
391
  unsigned SpacesRequiredBefore = 0;
392
393
  /// Number of parameters, if this is "(", "[" or "<".
394
  unsigned ParameterCount = 0;
395
396
  /// Number of parameters that are nested blocks,
397
  /// if this is "(", "[" or "<".
398
  unsigned BlockParameterCount = 0;
399
400
  /// If this is a bracket ("<", "(", "[" or "{"), contains the kind of
401
  /// the surrounding bracket.
402
  tok::TokenKind ParentBracket = tok::unknown;
403
404
  /// The total length of the unwrapped line up to and including this
405
  /// token.
406
  unsigned TotalLength = 0;
407
408
  /// The original 0-based column of this token, including expanded tabs.
409
  /// The configured TabWidth is used as tab width.
410
  unsigned OriginalColumn = 0;
411
412
  /// The length of following tokens until the next natural split point,
413
  /// or the next token that can be broken.
414
  unsigned UnbreakableTailLength = 0;
415
416
  // FIXME: Come up with a 'cleaner' concept.
417
  /// The binding strength of a token. This is a combined value of
418
  /// operator precedence, parenthesis nesting, etc.
419
  unsigned BindingStrength = 0;
420
421
  /// The nesting level of this token, i.e. the number of surrounding (),
422
  /// [], {} or <>.
423
  unsigned NestingLevel = 0;
424
425
  /// The indent level of this token. Copied from the surrounding line.
426
  unsigned IndentLevel = 0;
427
428
  /// Penalty for inserting a line break before this token.
429
  unsigned SplitPenalty = 0;
430
431
  /// If this is the first ObjC selector name in an ObjC method
432
  /// definition or call, this contains the length of the longest name.
433
  ///
434
  /// This being set to 0 means that the selectors should not be colon-aligned,
435
  /// e.g. because several of them are block-type.
436
  unsigned LongestObjCSelectorName = 0;
437
438
  /// If this is the first ObjC selector name in an ObjC method
439
  /// definition or call, this contains the number of parts that the whole
440
  /// selector consist of.
441
  unsigned ObjCSelectorNameParts = 0;
442
443
  /// The 0-based index of the parameter/argument. For ObjC it is set
444
  /// for the selector name token.
445
  /// For now calculated only for ObjC.
446
  unsigned ParameterIndex = 0;
447
448
  /// Stores the number of required fake parentheses and the
449
  /// corresponding operator precedence.
450
  ///
451
  /// If multiple fake parentheses start at a token, this vector stores them in
452
  /// reverse order, i.e. inner fake parenthesis first.
453
  SmallVector<prec::Level, 4> FakeLParens;
454
  /// Insert this many fake ) after this token for correct indentation.
455
  unsigned FakeRParens = 0;
456
457
  /// If this is an operator (or "."/"->") in a sequence of operators
458
  /// with the same precedence, contains the 0-based operator index.
459
  unsigned OperatorIndex = 0;
460
461
  /// If this is an operator (or "."/"->") in a sequence of operators
462
  /// with the same precedence, points to the next operator.
463
  FormatToken *NextOperator = nullptr;
464
465
  /// If this is a bracket, this points to the matching one.
466
  FormatToken *MatchingParen = nullptr;
467
468
  /// The previous token in the unwrapped line.
469
  FormatToken *Previous = nullptr;
470
471
  /// The next token in the unwrapped line.
472
  FormatToken *Next = nullptr;
473
474
  /// The first token in set of column elements.
475
  bool StartsColumn = false;
476
477
  /// This notes the start of the line of an array initializer.
478
  bool ArrayInitializerLineStart = false;
479
480
  /// This starts an array initializer.
481
  bool IsArrayInitializer = false;
482
483
  /// Is optional and can be removed.
484
  bool Optional = false;
485
486
  /// Number of optional braces to be inserted after this token:
487
  ///   -1: a single left brace
488
  ///    0: no braces
489
  ///   >0: number of right braces
490
  int8_t BraceCount = 0;
491
492
  /// If this token starts a block, this contains all the unwrapped lines
493
  /// in it.
494
  SmallVector<AnnotatedLine *, 1> Children;
495
496
  // Contains all attributes related to how this token takes part
497
  // in a configured macro expansion.
498
  llvm::Optional<MacroExpansion> MacroCtx;
499
500
253M
  bool is(tok::TokenKind Kind) const { return Tok.is(Kind); }
501
220M
  bool is(TokenType TT) const { return getType() == TT; }
502
5.82M
  bool is(const IdentifierInfo *II) const {
503
5.82M
    return II && II == Tok.getIdentifierInfo();
504
5.82M
  }
505
27.6k
  bool is(tok::PPKeywordKind Kind) const {
506
27.6k
    return Tok.getIdentifierInfo() &&
507
27.6k
           
Tok.getIdentifierInfo()->getPPKeywordID() == Kind24.9k
;
508
27.6k
  }
509
1.02M
  bool is(BraceBlockKind BBK) const { return getBlockKind() == BBK; }
510
468k
  bool is(ParameterPackingKind PPK) const { return getPackingKind() == PPK; }
511
512
61.1M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
61.1M
    return is(K1) || 
is(K2)59.4M
;
514
61.1M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
512
31.2k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
31.2k
    return is(K1) || 
is(K2)31.0k
;
514
31.2k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
512
1.17M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
1.17M
    return is(K1) || 
is(K2)1.17M
;
514
1.17M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
512
36
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
36
    return is(K1) || is(K2);
514
36
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
512
18.1M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
18.1M
    return is(K1) || 
is(K2)17.9M
;
514
18.1M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
512
24.7M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
24.7M
    return is(K1) || 
is(K2)23.7M
;
514
24.7M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
512
15.9M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
15.9M
    return is(K1) || 
is(K2)15.4M
;
514
15.9M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
512
38.3k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
38.3k
    return is(K1) || 
is(K2)38.0k
;
514
38.3k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*) const
Line
Count
Source
512
56
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
56
    return is(K1) || is(K2);
514
56
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
512
1.18M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
513
1.18M
    return is(K1) || 
is(K2)1.15M
;
514
1.18M
  }
515
  template <typename A, typename B, typename... Ts>
516
85.3M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
85.3M
    return is(K1) || 
isOneOf(K2, Ks...)79.6M
;
518
85.3M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind>(clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
516
31.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
31.2k
    return is(K1) || 
isOneOf(K2, Ks...)28.0k
;
518
31.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
10.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
10.2k
    return is(K1) || 
isOneOf(K2, Ks...)10.2k
;
518
10.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
10.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
10.2k
    return is(K1) || 
isOneOf(K2, Ks...)10.1k
;
518
10.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
5.85M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
5.85M
    return is(K1) || 
isOneOf(K2, Ks...)4.48M
;
518
5.85M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
72
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
72
    return is(K1) || isOneOf(K2, Ks...);
518
72
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
72
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
72
    return is(K1) || 
isOneOf(K2, Ks...)60
;
518
72
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
60
    return is(K1) || isOneOf(K2, Ks...);
518
60
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
60
    return is(K1) || isOneOf(K2, Ks...);
518
60
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
60
    return is(K1) || 
isOneOf(K2, Ks...)36
;
518
60
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
516
36
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
36
    return is(K1) || isOneOf(K2, Ks...);
518
36
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
4.10M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
4.10M
    return is(K1) || 
isOneOf(K2, Ks...)4.08M
;
518
4.10M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
13.4M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4M
    return is(K1) || 
isOneOf(K2, Ks...)12.9M
;
518
13.4M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
518
1.10k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
518
1.10k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.10k
    return is(K1) || isOneOf(K2, Ks...);
518
1.10k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.85M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.85M
    return is(K1) || 
isOneOf(K2, Ks...)1.85M
;
518
1.85M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
2.09M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
2.09M
    return is(K1) || 
isOneOf(K2, Ks...)2.08M
;
518
2.09M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
29.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
29.1k
    return is(K1) || 
isOneOf(K2, Ks...)28.4k
;
518
29.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
28.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
28.4k
    return is(K1) || 
isOneOf(K2, Ks...)28.1k
;
518
28.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
29.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
29.8k
    return is(K1) || 
isOneOf(K2, Ks...)29.4k
;
518
29.8k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
29.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
29.4k
    return is(K1) || 
isOneOf(K2, Ks...)29.2k
;
518
29.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
29.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
29.2k
    return is(K1) || 
isOneOf(K2, Ks...)29.0k
;
518
29.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
108k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
108k
    return is(K1) || 
isOneOf(K2, Ks...)107k
;
518
108k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
14.0M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
14.0M
    return is(K1) || 
isOneOf(K2, Ks...)11.2M
;
518
14.0M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
516
12.2M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
12.2M
    return is(K1) || 
isOneOf(K2, Ks...)11.5M
;
518
12.2M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
1.43M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.43M
    return is(K1) || 
isOneOf(K2, Ks...)1.21M
;
518
1.43M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
292
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
292
    return is(K1) || 
isOneOf(K2, Ks...)288
;
518
292
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
288
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
288
    return is(K1) || isOneOf(K2, Ks...);
518
288
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
288
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
288
    return is(K1) || isOneOf(K2, Ks...);
518
288
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.06M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.06M
    return is(K1) || isOneOf(K2, Ks...);
518
1.06M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.06M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.06M
    return is(K1) || isOneOf(K2, Ks...);
518
1.06M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.06M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.06M
    return is(K1) || 
isOneOf(K2, Ks...)1.06M
;
518
1.06M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.06M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.06M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.06M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || 
isOneOf(K2, Ks...)1.05M
;
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
1.05M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.05M
    return is(K1) || isOneOf(K2, Ks...);
518
1.05M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
218k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
218k
    return is(K1) || 
isOneOf(K2, Ks...)217k
;
518
218k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
293k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
293k
    return is(K1) || 
isOneOf(K2, Ks...)270k
;
518
293k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
106
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
106
    return is(K1) || 
isOneOf(K2, Ks...)100
;
518
106
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
100
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
100
    return is(K1) || isOneOf(K2, Ks...);
518
100
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
100
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
100
    return is(K1) || 
isOneOf(K2, Ks...)68
;
518
100
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
402
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
402
    return is(K1) || 
isOneOf(K2, Ks...)298
;
518
402
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
298
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
298
    return is(K1) || 
isOneOf(K2, Ks...)290
;
518
298
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
290
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
290
    return is(K1) || 
isOneOf(K2, Ks...)286
;
518
290
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
286
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
286
    return is(K1) || 
isOneOf(K2, Ks...)284
;
518
286
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
230k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
230k
    return is(K1) || 
isOneOf(K2, Ks...)230k
;
518
230k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
25.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
25.7k
    return is(K1) || 
isOneOf(K2, Ks...)25.6k
;
518
25.7k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
25.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
25.6k
    return is(K1) || 
isOneOf(K2, Ks...)24.2k
;
518
25.6k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
24.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
24.2k
    return is(K1) || 
isOneOf(K2, Ks...)23.7k
;
518
24.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
23.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.7k
    return is(K1) || 
isOneOf(K2, Ks...)23.4k
;
518
23.7k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
23.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.4k
    return is(K1) || 
isOneOf(K2, Ks...)23.3k
;
518
23.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
23.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.7k
    return is(K1) || 
isOneOf(K2, Ks...)23.1k
;
518
23.7k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
23.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.1k
    return is(K1) || 
isOneOf(K2, Ks...)23.1k
;
518
23.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
23.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.1k
    return is(K1) || 
isOneOf(K2, Ks...)22.8k
;
518
23.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
516
8.63k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
8.63k
    return is(K1) || 
isOneOf(K2, Ks...)8.55k
;
518
8.63k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind>(clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
516
8.55k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
8.55k
    return is(K1) || 
isOneOf(K2, Ks...)7.81k
;
518
8.55k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.69k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.69k
    return is(K1) || isOneOf(K2, Ks...);
518
6.69k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.69k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.69k
    return is(K1) || isOneOf(K2, Ks...);
518
6.69k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
54
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
54
    return is(K1) || 
isOneOf(K2, Ks...)48
;
518
54
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
48
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
48
    return is(K1) || isOneOf(K2, Ks...);
518
48
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
48
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
48
    return is(K1) || 
isOneOf(K2, Ks...)46
;
518
48
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
3.03k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.03k
    return is(K1) || 
isOneOf(K2, Ks...)2.92k
;
518
3.03k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
2.92k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
2.92k
    return is(K1) || 
isOneOf(K2, Ks...)2.91k
;
518
2.92k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
5.19k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
5.19k
    return is(K1) || 
isOneOf(K2, Ks...)4.07k
;
518
5.19k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
4.07k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
4.07k
    return is(K1) || 
isOneOf(K2, Ks...)3.92k
;
518
4.07k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
274k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
274k
    return is(K1) || 
isOneOf(K2, Ks...)262k
;
518
274k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
298k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
298k
    return is(K1) || 
isOneOf(K2, Ks...)261k
;
518
298k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
40.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
40.9k
    return is(K1) || 
isOneOf(K2, Ks...)40.9k
;
518
40.9k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
163k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
163k
    return is(K1) || 
isOneOf(K2, Ks...)161k
;
518
163k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
68.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
68.7k
    return is(K1) || 
isOneOf(K2, Ks...)57.4k
;
518
68.7k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType>(clang::tok::PPKeywordKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
23.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.3k
    return is(K1) || 
isOneOf(K2, Ks...)23.3k
;
518
23.3k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
52.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
52.1k
    return is(K1) || 
isOneOf(K2, Ks...)52.0k
;
518
52.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
618
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
618
    return is(K1) || 
isOneOf(K2, Ks...)592
;
518
618
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.94k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.94k
    return is(K1) || 
isOneOf(K2, Ks...)3.94k
;
518
3.94k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.94k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.94k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
518
3.94k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
518
3.93k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
518
3.93k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
518
3.93k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
518
3.93k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
19.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
19.1k
    return is(K1) || 
isOneOf(K2, Ks...)19.1k
;
518
19.1k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
19.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
19.1k
    return is(K1) || 
isOneOf(K2, Ks...)19.1k
;
518
19.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
794
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
794
    return is(K1) || 
isOneOf(K2, Ks...)792
;
518
794
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
12.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
12.8k
    return is(K1) || 
isOneOf(K2, Ks...)12.8k
;
518
12.8k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
12.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
12.0k
    return is(K1) || 
isOneOf(K2, Ks...)12.0k
;
518
12.0k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.75k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.75k
    return is(K1) || 
isOneOf(K2, Ks...)6.73k
;
518
6.75k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.73k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.73k
    return is(K1) || 
isOneOf(K2, Ks...)6.72k
;
518
6.73k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.72k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.72k
    return is(K1) || 
isOneOf(K2, Ks...)6.72k
;
518
6.72k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
6.72k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
6.72k
    return is(K1) || 
isOneOf(K2, Ks...)6.65k
;
518
6.72k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
86
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
86
    return is(K1) || 
isOneOf(K2, Ks...)14
;
518
86
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
14
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
14
    return is(K1) || isOneOf(K2, Ks...);
518
14
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
123
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
123
    return is(K1) || 
isOneOf(K2, Ks...)33
;
518
123
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.6k
    return is(K1) || 
isOneOf(K2, Ks...)13.5k
;
518
13.6k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.5k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.5k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
518
13.4k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.3k
    return is(K1) || isOneOf(K2, Ks...);
518
13.3k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.3k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
518
13.3k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
13.3k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
518
13.3k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
14.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
14.3k
    return is(K1) || 
isOneOf(K2, Ks...)14.3k
;
518
14.3k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
28
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
28
    return is(K1) || 
isOneOf(K2, Ks...)26
;
518
28
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
26
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
26
    return is(K1) || 
isOneOf(K2, Ks...)22
;
518
26
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
22
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
22
    return is(K1) || 
isOneOf(K2, Ks...)14
;
518
22
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
14
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
14
    return is(K1) || 
isOneOf(K2, Ks...)10
;
518
14
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
10
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
10
    return is(K1) || 
isOneOf(K2, Ks...)8
;
518
10
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || 
isOneOf(K2, Ks...)170
;
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
516
141k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
141k
    return is(K1) || 
isOneOf(K2, Ks...)141k
;
518
141k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.91k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.91k
    return is(K1) || 
isOneOf(K2, Ks...)9.60k
;
518
9.91k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.60k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.60k
    return is(K1) || 
isOneOf(K2, Ks...)9.41k
;
518
9.60k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.41k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.41k
    return is(K1) || 
isOneOf(K2, Ks...)9.36k
;
518
9.41k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.36k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.36k
    return is(K1) || 
isOneOf(K2, Ks...)9.30k
;
518
9.36k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.30k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.30k
    return is(K1) || 
isOneOf(K2, Ks...)9.25k
;
518
9.30k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.25k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.25k
    return is(K1) || 
isOneOf(K2, Ks...)9.23k
;
518
9.25k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.23k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.23k
    return is(K1) || 
isOneOf(K2, Ks...)9.23k
;
518
9.23k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.23k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.23k
    return is(K1) || isOneOf(K2, Ks...);
518
9.23k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.23k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.23k
    return is(K1) || 
isOneOf(K2, Ks...)9.19k
;
518
9.23k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::format::TokenType, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
9.19k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
9.19k
    return is(K1) || 
isOneOf(K2, Ks...)9.17k
;
518
9.19k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
242
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
242
    return is(K1) || isOneOf(K2, Ks...);
518
242
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
242
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
242
    return is(K1) || isOneOf(K2, Ks...);
518
242
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
12.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
12.8k
    return is(K1) || 
isOneOf(K2, Ks...)12.5k
;
518
12.8k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
516
1.49k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.49k
    return is(K1) || 
isOneOf(K2, Ks...)1.42k
;
518
1.49k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
24.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
24.1k
    return is(K1) || 
isOneOf(K2, Ks...)23.5k
;
518
24.1k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
23.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.5k
    return is(K1) || 
isOneOf(K2, Ks...)23.2k
;
518
23.5k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
516
23.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
23.2k
    return is(K1) || 
isOneOf(K2, Ks...)23.0k
;
518
23.2k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
188
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
188
    return is(K1) || 
isOneOf(K2, Ks...)176
;
518
188
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
176
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
176
    return is(K1) || isOneOf(K2, Ks...);
518
176
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
176
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
176
    return is(K1) || 
isOneOf(K2, Ks...)172
;
518
176
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || isOneOf(K2, Ks...);
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
172
    return is(K1) || 
isOneOf(K2, Ks...)168
;
518
172
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
168
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
168
    return is(K1) || 
isOneOf(K2, Ks...)164
;
518
168
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
516
164
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
164
    return is(K1) || isOneOf(K2, Ks...);
518
164
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.34k
    return is(K1) || 
isOneOf(K2, Ks...)1.34k
;
518
1.34k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.34k
    return is(K1) || isOneOf(K2, Ks...);
518
1.34k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.34k
    return is(K1) || 
isOneOf(K2, Ks...)1.33k
;
518
1.34k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.33k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.33k
    return is(K1) || 
isOneOf(K2, Ks...)1.32k
;
518
1.33k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.32k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.32k
    return is(K1) || 
isOneOf(K2, Ks...)1.32k
;
518
1.32k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.32k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.32k
    return is(K1) || 
isOneOf(K2, Ks...)1.31k
;
518
1.32k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.31k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.31k
    return is(K1) || isOneOf(K2, Ks...);
518
1.31k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.31k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.31k
    return is(K1) || 
isOneOf(K2, Ks...)1.25k
;
518
1.31k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.25k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.25k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
518
1.25k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
518
1.10k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.04k
;
518
1.10k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
1.04k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
1.04k
    return is(K1) || 
isOneOf(K2, Ks...)948
;
518
1.04k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
948
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
948
    return is(K1) || isOneOf(K2, Ks...);
518
948
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
516
948
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
948
    return is(K1) || isOneOf(K2, Ks...);
518
948
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
516
11.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
517
11.9k
    return is(K1) || 
isOneOf(K2, Ks...)11.1k
;
518
11.9k
  }
519
10.8M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
bool clang::format::FormatToken::isNot<clang::format::BraceBlockKind>(clang::format::BraceBlockKind) const
Line
Count
Source
519
77.5k
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
bool clang::format::FormatToken::isNot<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
519
9.54M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
bool clang::format::FormatToken::isNot<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
519
173
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
bool clang::format::FormatToken::isNot<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
519
1.24M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
520
521
262k
  bool isIf(bool AllowConstexprMacro = true) const {
522
262k
    return is(tok::kw_if) || 
endsSequence(tok::kw_constexpr, tok::kw_if)250k
||
523
262k
           
(249k
endsSequence(tok::identifier, tok::kw_if)249k
&&
AllowConstexprMacro705
);
524
262k
  }
525
526
1.60k
  bool closesScopeAfterBlock() const {
527
1.60k
    if (getBlockKind() == BK_Block)
528
68
      return true;
529
1.53k
    if (closesScope())
530
884
      return Previous->closesScopeAfterBlock();
531
651
    return false;
532
1.53k
  }
533
534
  /// \c true if this token starts a sequence with the given tokens in order,
535
  /// following the ``Next`` pointers, ignoring comments.
536
  template <typename A, typename... Ts>
537
1.74M
  bool startsSequence(A K1, Ts... Tokens) const {
538
1.74M
    return startsSequenceInternal(K1, Tokens...);
539
1.74M
  }
bool clang::format::FormatToken::startsSequence<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
537
221
  bool startsSequence(A K1, Ts... Tokens) const {
538
221
    return startsSequenceInternal(K1, Tokens...);
539
221
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
537
564k
  bool startsSequence(A K1, Ts... Tokens) const {
538
564k
    return startsSequenceInternal(K1, Tokens...);
539
564k
  }
bool clang::format::FormatToken::startsSequence<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
537
1.06M
  bool startsSequence(A K1, Ts... Tokens) const {
538
1.06M
    return startsSequenceInternal(K1, Tokens...);
539
1.06M
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
537
46.6k
  bool startsSequence(A K1, Ts... Tokens) const {
538
46.6k
    return startsSequenceInternal(K1, Tokens...);
539
46.6k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
537
617
  bool startsSequence(A K1, Ts... Tokens) const {
538
617
    return startsSequenceInternal(K1, Tokens...);
539
617
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
537
2.41k
  bool startsSequence(A K1, Ts... Tokens) const {
538
2.41k
    return startsSequenceInternal(K1, Tokens...);
539
2.41k
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
537
3.98k
  bool startsSequence(A K1, Ts... Tokens) const {
538
3.98k
    return startsSequenceInternal(K1, Tokens...);
539
3.98k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
537
3.92k
  bool startsSequence(A K1, Ts... Tokens) const {
538
3.92k
    return startsSequenceInternal(K1, Tokens...);
539
3.92k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
537
25.4k
  bool startsSequence(A K1, Ts... Tokens) const {
538
25.4k
    return startsSequenceInternal(K1, Tokens...);
539
25.4k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
537
26.7k
  bool startsSequence(A K1, Ts... Tokens) const {
538
26.7k
    return startsSequenceInternal(K1, Tokens...);
539
26.7k
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
537
62
  bool startsSequence(A K1, Ts... Tokens) const {
538
62
    return startsSequenceInternal(K1, Tokens...);
539
62
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
537
5.50k
  bool startsSequence(A K1, Ts... Tokens) const {
538
5.50k
    return startsSequenceInternal(K1, Tokens...);
539
5.50k
  }
540
541
  /// \c true if this token ends a sequence with the given tokens in order,
542
  /// following the ``Previous`` pointers, ignoring comments.
543
  /// For example, given tokens [T1, T2, T3], the function returns true if
544
  /// 3 tokens ending at this (ignoring comments) are [T3, T2, T1]. In other
545
  /// words, the tokens passed to this function need to the reverse of the
546
  /// order the tokens appear in code.
547
  template <typename A, typename... Ts>
548
525k
  bool endsSequence(A K1, Ts... Tokens) const {
549
525k
    return endsSequenceInternal(K1, Tokens...);
550
525k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
548
500k
  bool endsSequence(A K1, Ts... Tokens) const {
549
500k
    return endsSequenceInternal(K1, Tokens...);
550
500k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
548
9.47k
  bool endsSequence(A K1, Ts... Tokens) const {
549
9.47k
    return endsSequenceInternal(K1, Tokens...);
550
9.47k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
548
319
  bool endsSequence(A K1, Ts... Tokens) const {
549
319
    return endsSequenceInternal(K1, Tokens...);
550
319
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
548
292
  bool endsSequence(A K1, Ts... Tokens) const {
549
292
    return endsSequenceInternal(K1, Tokens...);
550
292
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
548
13.5k
  bool endsSequence(A K1, Ts... Tokens) const {
549
13.5k
    return endsSequenceInternal(K1, Tokens...);
550
13.5k
  }
bool clang::format::FormatToken::endsSequence<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
548
1.37k
  bool endsSequence(A K1, Ts... Tokens) const {
549
1.37k
    return endsSequenceInternal(K1, Tokens...);
550
1.37k
  }
551
552
5.80M
  bool isStringLiteral() const { return tok::isStringLiteral(Tok.getKind()); }
553
554
86.0k
  bool isObjCAtKeyword(tok::ObjCKeywordKind Kind) const {
555
86.0k
    return Tok.isObjCAtKeyword(Kind);
556
86.0k
  }
557
558
155k
  bool isAccessSpecifier(bool ColonRequired = true) const {
559
155k
    return isOneOf(tok::kw_public, tok::kw_protected, tok::kw_private) &&
560
155k
           
(2.34k
!ColonRequired2.34k
||
(2.32k
Next2.32k
&&
Next->is(tok::colon)2.29k
));
561
155k
  }
562
563
29.1k
  bool canBePointerOrReferenceQualifier() const {
564
29.1k
    return isOneOf(tok::kw_const, tok::kw_restrict, tok::kw_volatile,
565
29.1k
                   tok::kw___attribute, tok::kw__Nonnull, tok::kw__Nullable,
566
29.1k
                   tok::kw__Null_unspecified, tok::kw___ptr32, tok::kw___ptr64,
567
29.1k
                   TT_AttributeMacro);
568
29.1k
  }
569
570
  /// Determine whether the token is a simple-type-specifier.
571
  LLVM_NODISCARD bool isSimpleTypeSpecifier() const;
572
573
  LLVM_NODISCARD bool isTypeOrIdentifier() const;
574
575
71.7k
  bool isObjCAccessSpecifier() const {
576
71.7k
    return is(tok::at) && 
Next561
&&
577
71.7k
           
(561
Next->isObjCAtKeyword(tok::objc_public)561
||
578
561
            
Next->isObjCAtKeyword(tok::objc_protected)551
||
579
561
            
Next->isObjCAtKeyword(tok::objc_package)541
||
580
561
            
Next->isObjCAtKeyword(tok::objc_private)531
);
581
71.7k
  }
582
583
  /// Returns whether \p Tok is ([{ or an opening < of a template or in
584
  /// protos.
585
6.13M
  bool opensScope() const {
586
6.13M
    if (is(TT_TemplateString) && 
TokenText.endswith("${")2.52k
)
587
1.42k
      return true;
588
6.13M
    if (is(TT_DictLiteral) && 
is(tok::less)48.9k
)
589
4.45k
      return true;
590
6.12M
    return isOneOf(tok::l_paren, tok::l_brace, tok::l_square,
591
6.12M
                   TT_TemplateOpener);
592
6.13M
  }
593
  /// Returns whether \p Tok is )]} or a closing > of a template or in
594
  /// protos.
595
7.74M
  bool closesScope() const {
596
7.74M
    if (is(TT_TemplateString) && 
TokenText.startswith("}")2.77k
)
597
2.07k
      return true;
598
7.74M
    if (is(TT_DictLiteral) && 
is(tok::greater)22.8k
)
599
6.31k
      return true;
600
7.73M
    return isOneOf(tok::r_paren, tok::r_brace, tok::r_square,
601
7.73M
                   TT_TemplateCloser);
602
7.74M
  }
603
604
  /// Returns \c true if this is a "." or "->" accessing a member.
605
6.02M
  bool isMemberAccess() const {
606
6.02M
    return isOneOf(tok::arrow, tok::period, tok::arrowstar) &&
607
6.02M
           !isOneOf(TT_DesignatedInitializerPeriod, TT_TrailingReturnArrow,
608
66.5k
                    TT_LambdaArrow, TT_LeadingJavaAnnotation);
609
6.02M
  }
610
611
19.2k
  bool isUnaryOperator() const {
612
19.2k
    switch (Tok.getKind()) {
613
51
    case tok::plus:
614
102
    case tok::plusplus:
615
180
    case tok::minus:
616
204
    case tok::minusminus:
617
258
    case tok::exclaim:
618
336
    case tok::tilde:
619
387
    case tok::kw_sizeof:
620
402
    case tok::kw_alignof:
621
402
      return true;
622
18.8k
    default:
623
18.8k
      return false;
624
19.2k
    }
625
19.2k
  }
626
627
1.84M
  bool isBinaryOperator() const {
628
    // Comma is a binary operator, but does not behave as such wrt. formatting.
629
1.84M
    return getPrecedence() > prec::Comma;
630
1.84M
  }
631
632
2.53M
  bool isTrailingComment() const {
633
2.53M
    return is(tok::comment) &&
634
2.53M
           
(30.2k
is(TT_LineComment)30.2k
||
!Next5.31k
||
Next->NewlinesBefore > 03.38k
);
635
2.53M
  }
636
637
  /// Returns \c true if this is a keyword that can be used
638
  /// like a function call (e.g. sizeof, typeid, ...).
639
0
  bool isFunctionLikeKeyword() const {
640
0
    switch (Tok.getKind()) {
641
0
    case tok::kw_throw:
642
0
    case tok::kw_typeid:
643
0
    case tok::kw_return:
644
0
    case tok::kw_sizeof:
645
0
    case tok::kw_alignof:
646
0
    case tok::kw_alignas:
647
0
    case tok::kw_decltype:
648
0
    case tok::kw_noexcept:
649
0
    case tok::kw_static_assert:
650
0
    case tok::kw__Atomic:
651
0
    case tok::kw___attribute:
652
0
    case tok::kw___underlying_type:
653
0
    case tok::kw_requires:
654
0
      return true;
655
0
    default:
656
0
      return false;
657
0
    }
658
0
  }
659
660
  /// Returns \c true if this is a string literal that's like a label,
661
  /// e.g. ends with "=" or ":".
662
13.3k
  bool isLabelString() const {
663
13.3k
    if (!is(tok::string_literal))
664
12.8k
      return false;
665
488
    StringRef Content = TokenText;
666
488
    if (Content.startswith("\"") || 
Content.startswith("'")197
)
667
383
      Content = Content.drop_front(1);
668
488
    if (Content.endswith("\"") || 
Content.endswith("'")102
)
669
478
      Content = Content.drop_back(1);
670
488
    Content = Content.trim();
671
488
    return Content.size() > 1 &&
672
488
           
(449
Content.back() == ':'449
||
Content.back() == '='365
);
673
13.3k
  }
674
675
  /// Returns actual token start location without leading escaped
676
  /// newlines and whitespace.
677
  ///
678
  /// This can be different to Tok.getLocation(), which includes leading escaped
679
  /// newlines.
680
1.18M
  SourceLocation getStartOfNonWhitespace() const {
681
1.18M
    return WhitespaceRange.getEnd();
682
1.18M
  }
683
684
  /// Returns \c true if the range of whitespace immediately preceding the \c
685
  /// Token is not empty.
686
50.5k
  bool hasWhitespaceBefore() const {
687
50.5k
    return WhitespaceRange.getBegin() != WhitespaceRange.getEnd();
688
50.5k
  }
689
690
4.72M
  prec::Level getPrecedence() const {
691
4.72M
    return getBinOpPrecedence(Tok.getKind(), /*GreaterThanIsOperator=*/true,
692
4.72M
                              /*CPlusPlus11=*/true);
693
4.72M
  }
694
695
  /// Returns the previous token ignoring comments.
696
5.70M
  LLVM_NODISCARD FormatToken *getPreviousNonComment() const {
697
5.70M
    FormatToken *Tok = Previous;
698
5.74M
    while (Tok && 
Tok->is(tok::comment)5.64M
)
699
41.1k
      Tok = Tok->Previous;
700
5.70M
    return Tok;
701
5.70M
  }
702
703
  /// Returns the next token ignoring comments.
704
6.67M
  LLVM_NODISCARD const FormatToken *getNextNonComment() const {
705
6.67M
    const FormatToken *Tok = Next;
706
6.74M
    while (Tok && 
Tok->is(tok::comment)5.03M
)
707
65.0k
      Tok = Tok->Next;
708
6.67M
    return Tok;
709
6.67M
  }
710
711
  /// Returns \c true if this tokens starts a block-type list, i.e. a
712
  /// list that should be indented with a block indent.
713
  LLVM_NODISCARD bool opensBlockOrBlockTypeList(const FormatStyle &Style) const;
714
715
  /// Returns whether the token is the left square bracket of a C++
716
  /// structured binding declaration.
717
14.4k
  bool isCppStructuredBinding(const FormatStyle &Style) const {
718
14.4k
    if (!Style.isCpp() || 
isNot(tok::l_square)13.7k
)
719
752
      return false;
720
13.7k
    const FormatToken *T = this;
721
14.3k
    do {
722
14.3k
      T = T->getPreviousNonComment();
723
14.3k
    } while (T && T->isOneOf(tok::kw_const, tok::kw_volatile, tok::amp,
724
12.7k
                             tok::ampamp));
725
13.7k
    return T && 
T->is(tok::kw_auto)12.0k
;
726
14.4k
  }
727
728
  /// Same as opensBlockOrBlockTypeList, but for the closing token.
729
119k
  bool closesBlockOrBlockTypeList(const FormatStyle &Style) const {
730
119k
    if (is(TT_TemplateString) && 
closesScope()12
)
731
0
      return true;
732
119k
    return MatchingParen && 
MatchingParen->opensBlockOrBlockTypeList(Style)51.4k
;
733
119k
  }
734
735
  /// Return the actual namespace token, if this token starts a namespace
736
  /// block.
737
16.1k
  const FormatToken *getNamespaceToken() const {
738
16.1k
    const FormatToken *NamespaceTok = this;
739
16.1k
    if (is(tok::comment))
740
120
      NamespaceTok = NamespaceTok->getNextNonComment();
741
    // Detect "(inline|export)? namespace" in the beginning of a line.
742
16.1k
    if (NamespaceTok && 
NamespaceTok->isOneOf(tok::kw_inline, tok::kw_export)16.1k
)
743
121
      NamespaceTok = NamespaceTok->getNextNonComment();
744
16.1k
    return NamespaceTok &&
745
16.1k
                   
NamespaceTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro)16.1k
746
16.1k
               ? 
NamespaceTok1.26k
747
16.1k
               : 
nullptr14.9k
;
748
16.1k
  }
749
750
2.41k
  void copyFrom(const FormatToken &Tok) { *this = Tok; }
751
752
private:
753
  // Only allow copying via the explicit copyFrom method.
754
  FormatToken(const FormatToken &) = delete;
755
2.41k
  FormatToken &operator=(const FormatToken &) = default;
756
757
  template <typename A, typename... Ts>
758
117k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
117k
    if (is(tok::comment) && 
Next1.04k
)
760
451
      return Next->startsSequenceInternal(K1, Tokens...);
761
117k
    return is(K1) && 
Next19.9k
&&
Next->startsSequenceInternal(Tokens...)19.9k
;
762
117k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
758
221
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
221
    if (is(tok::comment) && 
Next0
)
760
0
      return Next->startsSequenceInternal(K1, Tokens...);
761
221
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
762
221
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
758
47.6k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
47.6k
    if (is(tok::comment) && 
Next655
)
760
183
      return Next->startsSequenceInternal(K1, Tokens...);
761
47.4k
    return is(K1) && 
Next15.4k
&&
Next->startsSequenceInternal(Tokens...)15.4k
;
762
47.6k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
758
617
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
617
    if (is(tok::comment) && 
Next0
)
760
0
      return Next->startsSequenceInternal(K1, Tokens...);
761
617
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
762
617
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
758
3.03k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
3.03k
    if (is(tok::comment) && 
Next0
)
760
0
      return Next->startsSequenceInternal(K1, Tokens...);
761
3.03k
    return is(K1) && 
Next2.74k
&&
Next->startsSequenceInternal(Tokens...)2.74k
;
762
3.03k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
758
4.12k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
4.12k
    if (is(tok::comment) && 
Next12
)
760
12
      return Next->startsSequenceInternal(K1, Tokens...);
761
4.11k
    return is(K1) && 
Next72
&&
Next->startsSequenceInternal(Tokens...)72
;
762
4.12k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
758
3.93k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
3.93k
    if (is(tok::comment) && 
Next8
)
760
8
      return Next->startsSequenceInternal(K1, Tokens...);
761
3.92k
    return is(K1) && 
Next125
&&
Next->startsSequenceInternal(Tokens...)125
;
762
3.93k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
758
25.6k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
25.6k
    if (is(tok::comment) && 
Next371
)
760
248
      return Next->startsSequenceInternal(K1, Tokens...);
761
25.4k
    return is(K1) && 
Next633
&&
Next->startsSequenceInternal(Tokens...)633
;
762
25.6k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
758
26.7k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
26.7k
    if (is(tok::comment) && 
Next0
)
760
0
      return Next->startsSequenceInternal(K1, Tokens...);
761
26.7k
    return is(K1) && 
Next88
&&
Next->startsSequenceInternal(Tokens...)88
;
762
26.7k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
758
5.50k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
759
5.50k
    if (is(tok::comment) && 
Next0
)
760
0
      return Next->startsSequenceInternal(K1, Tokens...);
761
5.50k
    return is(K1) && 
Next0
&&
Next->startsSequenceInternal(Tokens...)0
;
762
5.50k
  }
763
764
1.66M
  template <typename A> bool startsSequenceInternal(A K1) const {
765
1.66M
    if (is(tok::comment) && 
Next39.5k
)
766
15.4k
      return Next->startsSequenceInternal(K1);
767
1.65M
    return is(K1);
768
1.66M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
764
584k
  template <typename A> bool startsSequenceInternal(A K1) const {
765
584k
    if (is(tok::comment) && 
Next8.76k
)
766
3.91k
      return Next->startsSequenceInternal(K1);
767
580k
    return is(K1);
768
584k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
764
1.08M
  template <typename A> bool startsSequenceInternal(A K1) const {
765
1.08M
    if (is(tok::comment) && 
Next30.7k
)
766
11.5k
      return Next->startsSequenceInternal(K1);
767
1.06M
    return is(K1);
768
1.08M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
764
150
  template <typename A> bool startsSequenceInternal(A K1) const {
765
150
    if (is(tok::comment) && 
Next0
)
766
0
      return Next->startsSequenceInternal(K1);
767
150
    return is(K1);
768
150
  }
769
770
197k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
771
197k
    if (is(tok::comment) && 
Previous335
)
772
287
      return Previous->endsSequenceInternal(K1);
773
197k
    return is(K1);
774
197k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
770
196k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
771
196k
    if (is(tok::comment) && 
Previous331
)
772
287
      return Previous->endsSequenceInternal(K1);
773
196k
    return is(K1);
774
196k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
770
138
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
771
138
    if (is(tok::comment) && 
Previous0
)
772
0
      return Previous->endsSequenceInternal(K1);
773
138
    return is(K1);
774
138
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
770
935
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
771
935
    if (is(tok::comment) && 
Previous4
)
772
0
      return Previous->endsSequenceInternal(K1);
773
935
    return is(K1);
774
935
  }
775
776
  template <typename A, typename... Ts>
777
516k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
516k
    if (is(tok::comment) && 
Previous462
)
779
458
      return Previous->endsSequenceInternal(K1, Tokens...);
780
516k
    return is(K1) && 
Previous217k
&&
Previous->endsSequenceInternal(Tokens...)188k
;
781
516k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
777
501k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
501k
    if (is(tok::comment) && 
Previous374
)
779
374
      return Previous->endsSequenceInternal(K1, Tokens...);
780
500k
    return is(K1) && 
Previous215k
&&
Previous->endsSequenceInternal(Tokens...)186k
;
781
501k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
777
319
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
319
    if (is(tok::comment) && 
Previous0
)
779
0
      return Previous->endsSequenceInternal(K1, Tokens...);
780
319
    return is(K1) && Previous && 
Previous->endsSequenceInternal(Tokens...)271
;
781
319
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
777
292
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
292
    if (is(tok::comment) && 
Previous0
)
779
0
      return Previous->endsSequenceInternal(K1, Tokens...);
780
292
    return is(K1) && Previous && 
Previous->endsSequenceInternal(Tokens...)268
;
781
292
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
777
268
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
268
    if (is(tok::comment) && 
Previous0
)
779
0
      return Previous->endsSequenceInternal(K1, Tokens...);
780
268
    return is(K1) && 
Previous138
&&
Previous->endsSequenceInternal(Tokens...)138
;
781
268
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
777
13.6k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
13.6k
    if (is(tok::comment) && 
Previous88
)
779
84
      return Previous->endsSequenceInternal(K1, Tokens...);
780
13.5k
    return is(K1) && 
Previous1.40k
&&
Previous->endsSequenceInternal(Tokens...)935
;
781
13.6k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
777
1.37k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
778
1.37k
    if (is(tok::comment) && 
Previous0
)
779
0
      return Previous->endsSequenceInternal(K1, Tokens...);
780
1.37k
    return is(K1) && 
Previous28
&&
Previous->endsSequenceInternal(Tokens...)28
;
781
1.37k
  }
782
};
783
784
class ContinuationIndenter;
785
struct LineState;
786
787
class TokenRole {
788
public:
789
16.9k
  TokenRole(const FormatStyle &Style) : Style(Style) {}
790
  virtual ~TokenRole();
791
792
  /// After the \c TokenAnnotator has finished annotating all the tokens,
793
  /// this function precomputes required information for formatting.
794
  virtual void precomputeFormattingInfos(const FormatToken *Token);
795
796
  /// Apply the special formatting that the given role demands.
797
  ///
798
  /// Assumes that the token having this role is already formatted.
799
  ///
800
  /// Continues formatting from \p State leaving indentation to \p Indenter and
801
  /// returns the total penalty that this formatting incurs.
802
  virtual unsigned formatFromToken(LineState &State,
803
                                   ContinuationIndenter *Indenter,
804
0
                                   bool DryRun) {
805
0
    return 0;
806
0
  }
807
808
  /// Same as \c formatFromToken, but assumes that the first token has
809
  /// already been set thereby deciding on the first line break.
810
  virtual unsigned formatAfterToken(LineState &State,
811
                                    ContinuationIndenter *Indenter,
812
0
                                    bool DryRun) {
813
0
    return 0;
814
0
  }
815
816
  /// Notifies the \c Role that a comma was found.
817
0
  virtual void CommaFound(const FormatToken *Token) {}
818
819
0
  virtual const FormatToken *lastComma() { return nullptr; }
820
821
protected:
822
  const FormatStyle &Style;
823
};
824
825
class CommaSeparatedList : public TokenRole {
826
public:
827
  CommaSeparatedList(const FormatStyle &Style)
828
16.9k
      : TokenRole(Style), HasNestedBracedList(false) {}
829
830
  void precomputeFormattingInfos(const FormatToken *Token) override;
831
832
  unsigned formatAfterToken(LineState &State, ContinuationIndenter *Indenter,
833
                            bool DryRun) override;
834
835
  unsigned formatFromToken(LineState &State, ContinuationIndenter *Indenter,
836
                           bool DryRun) override;
837
838
  /// Adds \p Token as the next comma to the \c CommaSeparated list.
839
30.4k
  void CommaFound(const FormatToken *Token) override {
840
30.4k
    Commas.push_back(Token);
841
30.4k
  }
842
843
123
  const FormatToken *lastComma() override {
844
123
    if (Commas.empty())
845
0
      return nullptr;
846
123
    return Commas.back();
847
123
  }
848
849
private:
850
  /// A struct that holds information on how to format a given list with
851
  /// a specific number of columns.
852
  struct ColumnFormat {
853
    /// The number of columns to use.
854
    unsigned Columns;
855
856
    /// The total width in characters.
857
    unsigned TotalWidth;
858
859
    /// The number of lines required for this format.
860
    unsigned LineCount;
861
862
    /// The size of each column in characters.
863
    SmallVector<unsigned, 8> ColumnSizes;
864
  };
865
866
  /// Calculate which \c ColumnFormat fits best into
867
  /// \p RemainingCharacters.
868
  const ColumnFormat *getColumnFormat(unsigned RemainingCharacters) const;
869
870
  /// The ordered \c FormatTokens making up the commas of this list.
871
  SmallVector<const FormatToken *, 8> Commas;
872
873
  /// The length of each of the list's items in characters including the
874
  /// trailing comma.
875
  SmallVector<unsigned, 8> ItemLengths;
876
877
  /// Precomputed formats that can be used for this list.
878
  SmallVector<ColumnFormat, 4> Formats;
879
880
  bool HasNestedBracedList;
881
};
882
883
/// Encapsulates keywords that are context sensitive or for languages not
884
/// properly supported by Clang's lexer.
885
struct AdditionalKeywords {
886
64.4k
  AdditionalKeywords(IdentifierTable &IdentTable) {
887
64.4k
    kw_final = &IdentTable.get("final");
888
64.4k
    kw_override = &IdentTable.get("override");
889
64.4k
    kw_in = &IdentTable.get("in");
890
64.4k
    kw_of = &IdentTable.get("of");
891
64.4k
    kw_CF_CLOSED_ENUM = &IdentTable.get("CF_CLOSED_ENUM");
892
64.4k
    kw_CF_ENUM = &IdentTable.get("CF_ENUM");
893
64.4k
    kw_CF_OPTIONS = &IdentTable.get("CF_OPTIONS");
894
64.4k
    kw_NS_CLOSED_ENUM = &IdentTable.get("NS_CLOSED_ENUM");
895
64.4k
    kw_NS_ENUM = &IdentTable.get("NS_ENUM");
896
64.4k
    kw_NS_OPTIONS = &IdentTable.get("NS_OPTIONS");
897
898
64.4k
    kw_as = &IdentTable.get("as");
899
64.4k
    kw_async = &IdentTable.get("async");
900
64.4k
    kw_await = &IdentTable.get("await");
901
64.4k
    kw_declare = &IdentTable.get("declare");
902
64.4k
    kw_finally = &IdentTable.get("finally");
903
64.4k
    kw_from = &IdentTable.get("from");
904
64.4k
    kw_function = &IdentTable.get("function");
905
64.4k
    kw_get = &IdentTable.get("get");
906
64.4k
    kw_import = &IdentTable.get("import");
907
64.4k
    kw_infer = &IdentTable.get("infer");
908
64.4k
    kw_is = &IdentTable.get("is");
909
64.4k
    kw_let = &IdentTable.get("let");
910
64.4k
    kw_module = &IdentTable.get("module");
911
64.4k
    kw_readonly = &IdentTable.get("readonly");
912
64.4k
    kw_set = &IdentTable.get("set");
913
64.4k
    kw_type = &IdentTable.get("type");
914
64.4k
    kw_typeof = &IdentTable.get("typeof");
915
64.4k
    kw_var = &IdentTable.get("var");
916
64.4k
    kw_yield = &IdentTable.get("yield");
917
918
64.4k
    kw_abstract = &IdentTable.get("abstract");
919
64.4k
    kw_assert = &IdentTable.get("assert");
920
64.4k
    kw_extends = &IdentTable.get("extends");
921
64.4k
    kw_implements = &IdentTable.get("implements");
922
64.4k
    kw_instanceof = &IdentTable.get("instanceof");
923
64.4k
    kw_interface = &IdentTable.get("interface");
924
64.4k
    kw_native = &IdentTable.get("native");
925
64.4k
    kw_package = &IdentTable.get("package");
926
64.4k
    kw_synchronized = &IdentTable.get("synchronized");
927
64.4k
    kw_throws = &IdentTable.get("throws");
928
64.4k
    kw___except = &IdentTable.get("__except");
929
64.4k
    kw___has_include = &IdentTable.get("__has_include");
930
64.4k
    kw___has_include_next = &IdentTable.get("__has_include_next");
931
932
64.4k
    kw_mark = &IdentTable.get("mark");
933
934
64.4k
    kw_extend = &IdentTable.get("extend");
935
64.4k
    kw_option = &IdentTable.get("option");
936
64.4k
    kw_optional = &IdentTable.get("optional");
937
64.4k
    kw_repeated = &IdentTable.get("repeated");
938
64.4k
    kw_required = &IdentTable.get("required");
939
64.4k
    kw_returns = &IdentTable.get("returns");
940
941
64.4k
    kw_signals = &IdentTable.get("signals");
942
64.4k
    kw_qsignals = &IdentTable.get("Q_SIGNALS");
943
64.4k
    kw_slots = &IdentTable.get("slots");
944
64.4k
    kw_qslots = &IdentTable.get("Q_SLOTS");
945
946
    // For internal clang-format use.
947
64.4k
    kw_internal_ident_after_define =
948
64.4k
        &IdentTable.get("__CLANG_FORMAT_INTERNAL_IDENT_AFTER_DEFINE__");
949
950
    // C# keywords
951
64.4k
    kw_dollar = &IdentTable.get("dollar");
952
64.4k
    kw_base = &IdentTable.get("base");
953
64.4k
    kw_byte = &IdentTable.get("byte");
954
64.4k
    kw_checked = &IdentTable.get("checked");
955
64.4k
    kw_decimal = &IdentTable.get("decimal");
956
64.4k
    kw_delegate = &IdentTable.get("delegate");
957
64.4k
    kw_event = &IdentTable.get("event");
958
64.4k
    kw_fixed = &IdentTable.get("fixed");
959
64.4k
    kw_foreach = &IdentTable.get("foreach");
960
64.4k
    kw_init = &IdentTable.get("init");
961
64.4k
    kw_implicit = &IdentTable.get("implicit");
962
64.4k
    kw_internal = &IdentTable.get("internal");
963
64.4k
    kw_lock = &IdentTable.get("lock");
964
64.4k
    kw_null = &IdentTable.get("null");
965
64.4k
    kw_object = &IdentTable.get("object");
966
64.4k
    kw_out = &IdentTable.get("out");
967
64.4k
    kw_params = &IdentTable.get("params");
968
64.4k
    kw_ref = &IdentTable.get("ref");
969
64.4k
    kw_string = &IdentTable.get("string");
970
64.4k
    kw_stackalloc = &IdentTable.get("stackalloc");
971
64.4k
    kw_sbyte = &IdentTable.get("sbyte");
972
64.4k
    kw_sealed = &IdentTable.get("sealed");
973
64.4k
    kw_uint = &IdentTable.get("uint");
974
64.4k
    kw_ulong = &IdentTable.get("ulong");
975
64.4k
    kw_unchecked = &IdentTable.get("unchecked");
976
64.4k
    kw_unsafe = &IdentTable.get("unsafe");
977
64.4k
    kw_ushort = &IdentTable.get("ushort");
978
64.4k
    kw_when = &IdentTable.get("when");
979
64.4k
    kw_where = &IdentTable.get("where");
980
981
    // Keep this at the end of the constructor to make sure everything here
982
    // is
983
    // already initialized.
984
64.4k
    JsExtraKeywords = std::unordered_set<IdentifierInfo *>(
985
64.4k
        {kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
986
64.4k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_override,
987
64.4k
         kw_readonly, kw_set, kw_type, kw_typeof, kw_var, kw_yield,
988
         // Keywords from the Java section.
989
64.4k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
990
991
64.4k
    CSharpExtraKeywords = std::unordered_set<IdentifierInfo *>(
992
64.4k
        {kw_base, kw_byte, kw_checked, kw_decimal, kw_delegate, kw_event,
993
64.4k
         kw_fixed, kw_foreach, kw_implicit, kw_in, kw_init, kw_interface,
994
64.4k
         kw_internal, kw_is, kw_lock, kw_null, kw_object, kw_out, kw_override,
995
64.4k
         kw_params, kw_readonly, kw_ref, kw_string, kw_stackalloc, kw_sbyte,
996
64.4k
         kw_sealed, kw_uint, kw_ulong, kw_unchecked, kw_unsafe, kw_ushort,
997
64.4k
         kw_when, kw_where,
998
         // Keywords from the JavaScript section.
999
64.4k
         kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
1000
64.4k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_readonly,
1001
64.4k
         kw_set, kw_type, kw_typeof, kw_var, kw_yield,
1002
         // Keywords from the Java section.
1003
64.4k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
1004
64.4k
  }
1005
1006
  // Context sensitive keywords.
1007
  IdentifierInfo *kw_final;
1008
  IdentifierInfo *kw_override;
1009
  IdentifierInfo *kw_in;
1010
  IdentifierInfo *kw_of;
1011
  IdentifierInfo *kw_CF_CLOSED_ENUM;
1012
  IdentifierInfo *kw_CF_ENUM;
1013
  IdentifierInfo *kw_CF_OPTIONS;
1014
  IdentifierInfo *kw_NS_CLOSED_ENUM;
1015
  IdentifierInfo *kw_NS_ENUM;
1016
  IdentifierInfo *kw_NS_OPTIONS;
1017
  IdentifierInfo *kw___except;
1018
  IdentifierInfo *kw___has_include;
1019
  IdentifierInfo *kw___has_include_next;
1020
1021
  // JavaScript keywords.
1022
  IdentifierInfo *kw_as;
1023
  IdentifierInfo *kw_async;
1024
  IdentifierInfo *kw_await;
1025
  IdentifierInfo *kw_declare;
1026
  IdentifierInfo *kw_finally;
1027
  IdentifierInfo *kw_from;
1028
  IdentifierInfo *kw_function;
1029
  IdentifierInfo *kw_get;
1030
  IdentifierInfo *kw_import;
1031
  IdentifierInfo *kw_infer;
1032
  IdentifierInfo *kw_is;
1033
  IdentifierInfo *kw_let;
1034
  IdentifierInfo *kw_module;
1035
  IdentifierInfo *kw_readonly;
1036
  IdentifierInfo *kw_set;
1037
  IdentifierInfo *kw_type;
1038
  IdentifierInfo *kw_typeof;
1039
  IdentifierInfo *kw_var;
1040
  IdentifierInfo *kw_yield;
1041
1042
  // Java keywords.
1043
  IdentifierInfo *kw_abstract;
1044
  IdentifierInfo *kw_assert;
1045
  IdentifierInfo *kw_extends;
1046
  IdentifierInfo *kw_implements;
1047
  IdentifierInfo *kw_instanceof;
1048
  IdentifierInfo *kw_interface;
1049
  IdentifierInfo *kw_native;
1050
  IdentifierInfo *kw_package;
1051
  IdentifierInfo *kw_synchronized;
1052
  IdentifierInfo *kw_throws;
1053
1054
  // Pragma keywords.
1055
  IdentifierInfo *kw_mark;
1056
1057
  // Proto keywords.
1058
  IdentifierInfo *kw_extend;
1059
  IdentifierInfo *kw_option;
1060
  IdentifierInfo *kw_optional;
1061
  IdentifierInfo *kw_repeated;
1062
  IdentifierInfo *kw_required;
1063
  IdentifierInfo *kw_returns;
1064
1065
  // QT keywords.
1066
  IdentifierInfo *kw_signals;
1067
  IdentifierInfo *kw_qsignals;
1068
  IdentifierInfo *kw_slots;
1069
  IdentifierInfo *kw_qslots;
1070
1071
  // For internal use by clang-format.
1072
  IdentifierInfo *kw_internal_ident_after_define;
1073
1074
  // C# keywords
1075
  IdentifierInfo *kw_dollar;
1076
  IdentifierInfo *kw_base;
1077
  IdentifierInfo *kw_byte;
1078
  IdentifierInfo *kw_checked;
1079
  IdentifierInfo *kw_decimal;
1080
  IdentifierInfo *kw_delegate;
1081
  IdentifierInfo *kw_event;
1082
  IdentifierInfo *kw_fixed;
1083
  IdentifierInfo *kw_foreach;
1084
  IdentifierInfo *kw_implicit;
1085
  IdentifierInfo *kw_init;
1086
  IdentifierInfo *kw_internal;
1087
1088
  IdentifierInfo *kw_lock;
1089
  IdentifierInfo *kw_null;
1090
  IdentifierInfo *kw_object;
1091
  IdentifierInfo *kw_out;
1092
1093
  IdentifierInfo *kw_params;
1094
1095
  IdentifierInfo *kw_ref;
1096
  IdentifierInfo *kw_string;
1097
  IdentifierInfo *kw_stackalloc;
1098
  IdentifierInfo *kw_sbyte;
1099
  IdentifierInfo *kw_sealed;
1100
  IdentifierInfo *kw_uint;
1101
  IdentifierInfo *kw_ulong;
1102
  IdentifierInfo *kw_unchecked;
1103
  IdentifierInfo *kw_unsafe;
1104
  IdentifierInfo *kw_ushort;
1105
  IdentifierInfo *kw_when;
1106
  IdentifierInfo *kw_where;
1107
1108
  /// Returns \c true if \p Tok is a true JavaScript identifier, returns
1109
  /// \c false if it is a keyword or a pseudo keyword.
1110
  /// If \c AcceptIdentifierName is true, returns true not only for keywords,
1111
  // but also for IdentifierName tokens (aka pseudo-keywords), such as
1112
  // ``yield``.
1113
  bool IsJavaScriptIdentifier(const FormatToken &Tok,
1114
12.4k
                              bool AcceptIdentifierName = true) const {
1115
    // Based on the list of JavaScript & TypeScript keywords here:
1116
    // https://github.com/microsoft/TypeScript/blob/main/src/compiler/scanner.ts#L74
1117
12.4k
    switch (Tok.Tok.getKind()) {
1118
2
    case tok::kw_break:
1119
14
    case tok::kw_case:
1120
20
    case tok::kw_catch:
1121
26
    case tok::kw_class:
1122
28
    case tok::kw_continue:
1123
32
    case tok::kw_const:
1124
44
    case tok::kw_default:
1125
50
    case tok::kw_delete:
1126
52
    case tok::kw_do:
1127
54
    case tok::kw_else:
1128
58
    case tok::kw_enum:
1129
80
    case tok::kw_export:
1130
88
    case tok::kw_false:
1131
114
    case tok::kw_for:
1132
138
    case tok::kw_if:
1133
138
    case tok::kw_import:
1134
138
    case tok::kw_module:
1135
140
    case tok::kw_new:
1136
140
    case tok::kw_private:
1137
140
    case tok::kw_protected:
1138
140
    case tok::kw_public:
1139
262
    case tok::kw_return:
1140
266
    case tok::kw_static:
1141
274
    case tok::kw_switch:
1142
321
    case tok::kw_this:
1143
325
    case tok::kw_throw:
1144
331
    case tok::kw_true:
1145
336
    case tok::kw_try:
1146
338
    case tok::kw_typeof:
1147
344
    case tok::kw_void:
1148
348
    case tok::kw_while:
1149
      // These are JS keywords that are lexed by LLVM/clang as keywords.
1150
348
      return false;
1151
4.34k
    case tok::identifier: {
1152
      // For identifiers, make sure they are true identifiers, excluding the
1153
      // JavaScript pseudo-keywords (not lexed by LLVM/clang as keywords).
1154
4.34k
      bool IsPseudoKeyword =
1155
4.34k
          JsExtraKeywords.find(Tok.Tok.getIdentifierInfo()) !=
1156
4.34k
          JsExtraKeywords.end();
1157
4.34k
      return AcceptIdentifierName || 
!IsPseudoKeyword4.27k
;
1158
344
    }
1159
7.79k
    default:
1160
      // Other keywords are handled in the switch below, to avoid problems due
1161
      // to duplicate case labels when using the #include trick.
1162
7.79k
      break;
1163
12.4k
    }
1164
1165
7.79k
    switch (Tok.Tok.getKind()) {
1166
      // Handle C++ keywords not included above: these are all JS identifiers.
1167
60.6k
#define KEYWORD(X, Y) case tok::kw_##X:
1168
256
#include 
"clang/Basic/TokenKinds.def"0
1169
      // #undef KEYWORD is not needed -- it's #undef-ed at the end of
1170
      // TokenKinds.def
1171
256
      return true;
1172
7.53k
    default:
1173
      // All other tokens (punctuation etc) are not JS identifiers.
1174
7.53k
      return false;
1175
7.79k
    }
1176
7.79k
  }
1177
1178
  /// Returns \c true if \p Tok is a C# keyword, returns
1179
  /// \c false if it is a anything else.
1180
28
  bool isCSharpKeyword(const FormatToken &Tok) const {
1181
28
    switch (Tok.Tok.getKind()) {
1182
0
    case tok::kw_bool:
1183
0
    case tok::kw_break:
1184
0
    case tok::kw_case:
1185
0
    case tok::kw_catch:
1186
0
    case tok::kw_char:
1187
0
    case tok::kw_class:
1188
0
    case tok::kw_const:
1189
0
    case tok::kw_continue:
1190
0
    case tok::kw_default:
1191
0
    case tok::kw_do:
1192
0
    case tok::kw_double:
1193
0
    case tok::kw_else:
1194
8
    case tok::kw_enum:
1195
8
    case tok::kw_explicit:
1196
8
    case tok::kw_extern:
1197
8
    case tok::kw_false:
1198
8
    case tok::kw_float:
1199
8
    case tok::kw_for:
1200
8
    case tok::kw_goto:
1201
8
    case tok::kw_if:
1202
8
    case tok::kw_int:
1203
8
    case tok::kw_long:
1204
8
    case tok::kw_namespace:
1205
8
    case tok::kw_new:
1206
8
    case tok::kw_operator:
1207
8
    case tok::kw_private:
1208
8
    case tok::kw_protected:
1209
8
    case tok::kw_public:
1210
8
    case tok::kw_return:
1211
8
    case tok::kw_short:
1212
8
    case tok::kw_sizeof:
1213
8
    case tok::kw_static:
1214
8
    case tok::kw_struct:
1215
8
    case tok::kw_switch:
1216
8
    case tok::kw_this:
1217
8
    case tok::kw_throw:
1218
8
    case tok::kw_true:
1219
8
    case tok::kw_try:
1220
8
    case tok::kw_typeof:
1221
8
    case tok::kw_using:
1222
8
    case tok::kw_virtual:
1223
8
    case tok::kw_void:
1224
8
    case tok::kw_volatile:
1225
8
    case tok::kw_while:
1226
8
      return true;
1227
20
    default:
1228
20
      return Tok.is(tok::identifier) &&
1229
20
             CSharpExtraKeywords.find(Tok.Tok.getIdentifierInfo()) ==
1230
8
                 CSharpExtraKeywords.end();
1231
28
    }
1232
28
  }
1233
1234
private:
1235
  /// The JavaScript keywords beyond the C++ keyword set.
1236
  std::unordered_set<IdentifierInfo *> JsExtraKeywords;
1237
1238
  /// The C# keywords beyond the C++ keyword set
1239
  std::unordered_set<IdentifierInfo *> CSharpExtraKeywords;
1240
};
1241
1242
} // namespace format
1243
} // namespace clang
1244
1245
#endif