Coverage Report

Created: 2022-07-16 07:03

/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(CSharpGenericTypeConstraint)                                            \
50
0
  TYPE(CSharpGenericTypeConstraintColon)                                       \
51
0
  TYPE(CSharpGenericTypeConstraintComma)                                       \
52
0
  TYPE(CSharpNamedArgumentColon)                                               \
53
0
  TYPE(CSharpNullable)                                                         \
54
0
  TYPE(CSharpNullConditionalLSquare)                                           \
55
0
  TYPE(CSharpStringLiteral)                                                    \
56
0
  TYPE(CtorInitializerColon)                                                   \
57
0
  TYPE(CtorInitializerComma)                                                   \
58
0
  TYPE(DesignatedInitializerLSquare)                                           \
59
0
  TYPE(DesignatedInitializerPeriod)                                            \
60
0
  TYPE(DictLiteral)                                                            \
61
0
  TYPE(ElseLBrace)                                                             \
62
0
  TYPE(EnumLBrace)                                                             \
63
0
  TYPE(FatArrow)                                                               \
64
0
  TYPE(ForEachMacro)                                                           \
65
0
  TYPE(FunctionAnnotationRParen)                                               \
66
0
  TYPE(FunctionDeclarationName)                                                \
67
0
  TYPE(FunctionLBrace)                                                         \
68
0
  TYPE(FunctionLikeOrFreestandingMacro)                                        \
69
0
  TYPE(FunctionTypeLParen)                                                     \
70
0
  TYPE(IfMacro)                                                                \
71
0
  TYPE(ImplicitStringLiteral)                                                  \
72
0
  TYPE(InheritanceColon)                                                       \
73
0
  TYPE(InheritanceComma)                                                       \
74
0
  TYPE(InlineASMBrace)                                                         \
75
0
  TYPE(InlineASMColon)                                                         \
76
0
  TYPE(InlineASMSymbolicNameLSquare)                                           \
77
0
  TYPE(JavaAnnotation)                                                         \
78
0
  TYPE(JsAndAndEqual)                                                          \
79
0
  TYPE(JsComputedPropertyName)                                                 \
80
0
  TYPE(JsExponentiation)                                                       \
81
0
  TYPE(JsExponentiationEqual)                                                  \
82
0
  TYPE(JsPipePipeEqual)                                                        \
83
0
  TYPE(JsPrivateIdentifier)                                                    \
84
0
  TYPE(JsTypeColon)                                                            \
85
0
  TYPE(JsTypeOperator)                                                         \
86
0
  TYPE(JsTypeOptionalQuestion)                                                 \
87
0
  TYPE(LambdaArrow)                                                            \
88
0
  TYPE(LambdaLBrace)                                                           \
89
0
  TYPE(LambdaLSquare)                                                          \
90
0
  TYPE(LeadingJavaAnnotation)                                                  \
91
0
  TYPE(LineComment)                                                            \
92
0
  TYPE(MacroBlockBegin)                                                        \
93
0
  TYPE(MacroBlockEnd)                                                          \
94
0
  TYPE(ModulePartitionColon)                                                   \
95
0
  TYPE(NamespaceMacro)                                                         \
96
0
  TYPE(NonNullAssertion)                                                       \
97
0
  TYPE(NullCoalescingEqual)                                                    \
98
0
  TYPE(NullCoalescingOperator)                                                 \
99
0
  TYPE(NullPropagatingOperator)                                                \
100
0
  TYPE(ObjCBlockLBrace)                                                        \
101
0
  TYPE(ObjCBlockLParen)                                                        \
102
0
  TYPE(ObjCDecl)                                                               \
103
0
  TYPE(ObjCForIn)                                                              \
104
0
  TYPE(ObjCMethodExpr)                                                         \
105
0
  TYPE(ObjCMethodSpecifier)                                                    \
106
0
  TYPE(ObjCProperty)                                                           \
107
0
  TYPE(ObjCStringLiteral)                                                      \
108
0
  TYPE(OverloadedOperator)                                                     \
109
0
  TYPE(OverloadedOperatorLParen)                                               \
110
0
  TYPE(PointerOrReference)                                                     \
111
0
  TYPE(ProtoExtensionLSquare)                                                  \
112
0
  TYPE(PureVirtualSpecifier)                                                   \
113
0
  TYPE(RangeBasedForLoopColon)                                                 \
114
0
  TYPE(RecordLBrace)                                                           \
115
0
  TYPE(RegexLiteral)                                                           \
116
0
  TYPE(RequiresClause)                                                         \
117
0
  TYPE(RequiresClauseInARequiresExpression)                                    \
118
0
  TYPE(RequiresExpression)                                                     \
119
0
  TYPE(RequiresExpressionLBrace)                                               \
120
0
  TYPE(RequiresExpressionLParen)                                               \
121
0
  TYPE(SelectorName)                                                           \
122
0
  TYPE(StartOfName)                                                            \
123
0
  TYPE(StatementAttributeLikeMacro)                                            \
124
0
  TYPE(StatementMacro)                                                         \
125
0
  TYPE(StructLBrace)                                                           \
126
0
  TYPE(StructuredBindingLSquare)                                               \
127
0
  TYPE(TemplateCloser)                                                         \
128
0
  TYPE(TemplateOpener)                                                         \
129
0
  TYPE(TemplateString)                                                         \
130
0
  TYPE(TrailingAnnotation)                                                     \
131
0
  TYPE(TrailingReturnArrow)                                                    \
132
0
  TYPE(TrailingUnaryOperator)                                                  \
133
0
  TYPE(TypeDeclarationParen)                                                   \
134
0
  TYPE(TypenameMacro)                                                          \
135
0
  TYPE(UnaryOperator)                                                          \
136
0
  TYPE(UnionLBrace)                                                            \
137
0
  TYPE(UntouchableMacroFunc)                                                   \
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
180
  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.11M
        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.33M
  BraceBlockKind getBlockKind() const {
311
1.33M
    return static_cast<BraceBlockKind>(BlockKind);
312
1.33M
  }
313
103k
  void setBlockKind(BraceBlockKind BBK) {
314
103k
    BlockKind = BBK;
315
103k
    assert(getBlockKind() == BBK && "BraceBlockKind overflow!");
316
103k
  }
317
318
private:
319
  /// Stores the formatting decision for the token once it was made.
320
  unsigned Decision : 2;
321
322
public:
323
967k
  FormatDecision getDecision() const {
324
967k
    return static_cast<FormatDecision>(Decision);
325
967k
  }
326
351k
  void setDecision(FormatDecision D) {
327
351k
    Decision = D;
328
351k
    assert(getDecision() == D && "FormatDecision overflow!");
329
351k
  }
330
331
private:
332
  /// If this is an opening parenthesis, how are the parameters packed?
333
  unsigned PackingKind : 2;
334
335
public:
336
556k
  ParameterPackingKind getPackingKind() const {
337
556k
    return static_cast<ParameterPackingKind>(PackingKind);
338
556k
  }
339
83.5k
  void setPackingKind(ParameterPackingKind K) {
340
83.5k
    PackingKind = K;
341
83.5k
    assert(getPackingKind() == K && "ParameterPackingKind overflow!");
342
83.5k
  }
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
226M
  TokenType getType() const { return Type; }
352
1.35M
  void setType(TokenType T) {
353
1.35M
    assert((!TypeIsFinalized || T == Type) &&
354
1.35M
           "Please use overwriteFixedType to change a fixed type.");
355
0
    Type = T;
356
1.35M
  }
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
41.0k
  void setFinalizedType(TokenType T) {
362
41.0k
    Type = T;
363
41.0k
    TypeIsFinalized = true;
364
41.0k
  }
365
1.64k
  void overwriteFixedType(TokenType T) {
366
1.64k
    TypeIsFinalized = false;
367
1.64k
    setType(T);
368
1.64k
  }
369
1.11M
  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
  /// When macro expansion introduces nodes with children, those are marked as
501
  /// \c MacroParent.
502
  /// FIXME: The formatting code currently hard-codes the assumption that
503
  /// child nodes are introduced by blocks following an opening brace.
504
  /// This is deeply baked into the code and disentangling this will require
505
  /// signficant refactorings. \c MacroParent allows us to special-case the
506
  /// cases in which we treat parents as block-openers for now.
507
  bool MacroParent = false;
508
509
257M
  bool is(tok::TokenKind Kind) const { return Tok.is(Kind); }
510
222M
  bool is(TokenType TT) const { return getType() == TT; }
511
6.19M
  bool is(const IdentifierInfo *II) const {
512
6.19M
    return II && II == Tok.getIdentifierInfo();
513
6.19M
  }
514
28.3k
  bool is(tok::PPKeywordKind Kind) const {
515
28.3k
    return Tok.getIdentifierInfo() &&
516
28.3k
           
Tok.getIdentifierInfo()->getPPKeywordID() == Kind25.7k
;
517
28.3k
  }
518
1.03M
  bool is(BraceBlockKind BBK) const { return getBlockKind() == BBK; }
519
472k
  bool is(ParameterPackingKind PPK) const { return getPackingKind() == PPK; }
520
521
61.9M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
61.9M
    return is(K1) || 
is(K2)60.2M
;
523
61.9M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
521
1.33M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
1.33M
    return is(K1) || 
is(K2)1.32M
;
523
1.33M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
521
31.3k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
31.3k
    return is(K1) || 
is(K2)31.1k
;
523
31.3k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
521
36
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
36
    return is(K1) || is(K2);
523
36
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
521
18.2M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
18.2M
    return is(K1) || 
is(K2)18.1M
;
523
18.2M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
521
25.0M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
25.0M
    return is(K1) || 
is(K2)24.0M
;
523
25.0M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
521
16.0M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
16.0M
    return is(K1) || 
is(K2)15.5M
;
523
16.0M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
521
38.4k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
38.4k
    return is(K1) || 
is(K2)38.1k
;
523
38.4k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*) const
Line
Count
Source
521
56
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
56
    return is(K1) || is(K2);
523
56
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
521
1.19M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
522
1.19M
    return is(K1) || 
is(K2)1.16M
;
523
1.19M
  }
524
  template <typename A, typename B, typename... Ts>
525
86.4M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
86.4M
    return is(K1) || 
isOneOf(K2, Ks...)80.6M
;
527
86.4M
  }
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
525
31.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
31.2k
    return is(K1) || 
isOneOf(K2, Ks...)28.0k
;
527
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
525
10.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
10.3k
    return is(K1) || 
isOneOf(K2, Ks...)10.2k
;
527
10.3k
  }
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
525
10.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
10.2k
    return is(K1) || 
isOneOf(K2, Ks...)10.2k
;
527
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
525
5.94M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
5.94M
    return is(K1) || 
isOneOf(K2, Ks...)4.54M
;
527
5.94M
  }
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
525
72
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
72
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
72
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
72
    return is(K1) || 
isOneOf(K2, Ks...)60
;
527
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
525
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
60
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
60
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
60
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
60
    return is(K1) || 
isOneOf(K2, Ks...)36
;
527
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
525
36
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
36
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
4.14M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
4.14M
    return is(K1) || 
isOneOf(K2, Ks...)4.11M
;
527
4.14M
  }
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
525
13.5M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.5M
    return is(K1) || 
isOneOf(K2, Ks...)13.0M
;
527
13.5M
  }
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
525
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
527
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
525
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
527
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
525
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.10k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.87M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.87M
    return is(K1) || 
isOneOf(K2, Ks...)1.87M
;
527
1.87M
  }
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
525
2.11M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
2.11M
    return is(K1) || 
isOneOf(K2, Ks...)2.10M
;
527
2.11M
  }
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
525
29.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
29.6k
    return is(K1) || 
isOneOf(K2, Ks...)28.8k
;
527
29.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::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
525
28.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
28.8k
    return is(K1) || 
isOneOf(K2, Ks...)28.6k
;
527
28.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::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
525
30.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
30.2k
    return is(K1) || 
isOneOf(K2, Ks...)29.8k
;
527
30.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::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
525
29.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
29.8k
    return is(K1) || 
isOneOf(K2, Ks...)29.7k
;
527
29.8k
  }
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
525
29.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
29.7k
    return is(K1) || 
isOneOf(K2, Ks...)29.5k
;
527
29.7k
  }
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
525
110k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
110k
    return is(K1) || 
isOneOf(K2, Ks...)109k
;
527
110k
  }
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
525
14.1M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
14.1M
    return is(K1) || 
isOneOf(K2, Ks...)11.3M
;
527
14.1M
  }
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
525
12.3M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
12.3M
    return is(K1) || 
isOneOf(K2, Ks...)11.6M
;
527
12.3M
  }
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
525
1.46M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.46M
    return is(K1) || 
isOneOf(K2, Ks...)1.24M
;
527
1.46M
  }
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*, 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*) const
Line
Count
Source
525
956
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
956
    return is(K1) || 
isOneOf(K2, Ks...)954
;
527
956
  }
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*>(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
525
954
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
954
    return is(K1) || 
isOneOf(K2, Ks...)952
;
527
954
  }
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*, 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
525
952
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
952
    return is(K1) || 
isOneOf(K2, Ks...)948
;
527
952
  }
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*, 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
525
948
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
948
    return is(K1) || 
isOneOf(K2, Ks...)946
;
527
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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
946
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
946
    return is(K1) || isOneOf(K2, Ks...);
527
946
  }
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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
946
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
946
    return is(K1) || isOneOf(K2, Ks...);
527
946
  }
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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
946
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
946
    return is(K1) || isOneOf(K2, Ks...);
527
946
  }
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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
946
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
946
    return is(K1) || isOneOf(K2, Ks...);
527
946
  }
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*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
946
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
946
    return is(K1) || isOneOf(K2, Ks...);
527
946
  }
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
525
1.89k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.89k
    return is(K1) || 
isOneOf(K2, Ks...)1.89k
;
527
1.89k
  }
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
525
15.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
15.2k
    return is(K1) || 
isOneOf(K2, Ks...)15.2k
;
527
15.2k
  }
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
525
20.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
20.1k
    return is(K1) || 
isOneOf(K2, Ks...)20.1k
;
527
20.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
525
20.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
20.1k
    return is(K1) || 
isOneOf(K2, Ks...)20.0k
;
527
20.1k
  }
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
525
53.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
53.9k
    return is(K1) || 
isOneOf(K2, Ks...)53.8k
;
527
53.9k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
164k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
164k
    return is(K1) || 
isOneOf(K2, Ks...)163k
;
527
164k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, 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::IdentifierInfo*>(clang::format::TokenType, 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::IdentifierInfo*) const
Line
Count
Source
525
918
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
918
    return is(K1) || isOneOf(K2, Ks...);
527
918
  }
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*, 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::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
918
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
918
    return is(K1) || 
isOneOf(K2, Ks...)900
;
527
918
  }
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*, 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::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
900
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
900
    return is(K1) || isOneOf(K2, Ks...);
527
900
  }
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*, 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::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
900
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
900
    return is(K1) || isOneOf(K2, Ks...);
527
900
  }
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*, 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*) const
Line
Count
Source
525
900
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
900
    return is(K1) || isOneOf(K2, Ks...);
527
900
  }
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
525
292
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
292
    return is(K1) || 
isOneOf(K2, Ks...)288
;
527
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
525
288
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
288
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
288
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
288
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || 
isOneOf(K2, Ks...)1.07M
;
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
1.07M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.07M
    return is(K1) || isOneOf(K2, Ks...);
527
1.07M
  }
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
525
223k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
223k
    return is(K1) || 
isOneOf(K2, Ks...)222k
;
527
223k
  }
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
525
300k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
300k
    return is(K1) || 
isOneOf(K2, Ks...)276k
;
527
300k
  }
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
525
106
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
106
    return is(K1) || 
isOneOf(K2, Ks...)100
;
527
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
525
100
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
100
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
100
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
100
    return is(K1) || 
isOneOf(K2, Ks...)68
;
527
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
525
402
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
402
    return is(K1) || 
isOneOf(K2, Ks...)298
;
527
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
525
298
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
298
    return is(K1) || 
isOneOf(K2, Ks...)290
;
527
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
525
290
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
290
    return is(K1) || 
isOneOf(K2, Ks...)286
;
527
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
525
286
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
286
    return is(K1) || 
isOneOf(K2, Ks...)284
;
527
286
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
525
233k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
233k
    return is(K1) || 
isOneOf(K2, Ks...)233k
;
527
233k
  }
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
525
26.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
26.3k
    return is(K1) || 
isOneOf(K2, Ks...)26.1k
;
527
26.3k
  }
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
525
26.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
26.1k
    return is(K1) || 
isOneOf(K2, Ks...)24.7k
;
527
26.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, 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
525
24.7k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.7k
    return is(K1) || 
isOneOf(K2, Ks...)24.2k
;
527
24.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) const
Line
Count
Source
525
24.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.2k
    return is(K1) || 
isOneOf(K2, Ks...)23.9k
;
527
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) const
Line
Count
Source
525
23.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
23.9k
    return is(K1) || 
isOneOf(K2, Ks...)23.8k
;
527
23.9k
  }
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
525
24.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.2k
    return is(K1) || 
isOneOf(K2, Ks...)23.6k
;
527
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) const
Line
Count
Source
525
23.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
23.6k
    return is(K1) || 
isOneOf(K2, Ks...)23.5k
;
527
23.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) const
Line
Count
Source
525
23.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
23.5k
    return is(K1) || 
isOneOf(K2, Ks...)23.2k
;
527
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::tok::TokenKind, clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
525
8.76k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
8.76k
    return is(K1) || 
isOneOf(K2, Ks...)8.68k
;
527
8.76k
  }
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
525
8.68k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
8.68k
    return is(K1) || 
isOneOf(K2, Ks...)7.89k
;
527
8.68k
  }
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
525
6.69k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.69k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
6.69k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.69k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
54
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
54
    return is(K1) || 
isOneOf(K2, Ks...)48
;
527
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
525
48
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
48
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
48
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
48
    return is(K1) || 
isOneOf(K2, Ks...)46
;
527
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
525
3.03k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.03k
    return is(K1) || 
isOneOf(K2, Ks...)2.92k
;
527
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
525
2.92k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
2.92k
    return is(K1) || 
isOneOf(K2, Ks...)2.91k
;
527
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
525
5.19k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
5.19k
    return is(K1) || 
isOneOf(K2, Ks...)4.07k
;
527
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
525
4.07k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
4.07k
    return is(K1) || 
isOneOf(K2, Ks...)3.92k
;
527
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
525
280k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
280k
    return is(K1) || 
isOneOf(K2, Ks...)268k
;
527
280k
  }
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
525
307k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
307k
    return is(K1) || 
isOneOf(K2, Ks...)269k
;
527
307k
  }
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
525
42.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
42.4k
    return is(K1) || 
isOneOf(K2, Ks...)42.4k
;
527
42.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) const
Line
Count
Source
525
72.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
72.5k
    return is(K1) || 
isOneOf(K2, Ks...)61.1k
;
527
72.5k
  }
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
525
24.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.0k
    return is(K1) || 
isOneOf(K2, Ks...)24.0k
;
527
24.0k
  }
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
525
618
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
618
    return is(K1) || 
isOneOf(K2, Ks...)592
;
527
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
525
3.94k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.94k
    return is(K1) || 
isOneOf(K2, Ks...)3.94k
;
527
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
525
3.94k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.94k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
527
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
525
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
527
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
525
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
527
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
525
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
527
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
525
3.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
3.93k
    return is(K1) || 
isOneOf(K2, Ks...)3.93k
;
527
3.93k
  }
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
525
794
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
794
    return is(K1) || 
isOneOf(K2, Ks...)792
;
527
794
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
525
12.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
12.8k
    return is(K1) || 
isOneOf(K2, Ks...)12.8k
;
527
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
525
12.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
12.0k
    return is(K1) || 
isOneOf(K2, Ks...)12.0k
;
527
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
525
6.75k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.75k
    return is(K1) || 
isOneOf(K2, Ks...)6.73k
;
527
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
525
6.73k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.73k
    return is(K1) || 
isOneOf(K2, Ks...)6.72k
;
527
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
525
6.72k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.72k
    return is(K1) || 
isOneOf(K2, Ks...)6.72k
;
527
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
525
6.72k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
6.72k
    return is(K1) || 
isOneOf(K2, Ks...)6.65k
;
527
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
525
86
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
86
    return is(K1) || 
isOneOf(K2, Ks...)14
;
527
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
525
14
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
14
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
141
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
141
    return is(K1) || 
isOneOf(K2, Ks...)33
;
527
141
  }
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
525
13.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.6k
    return is(K1) || 
isOneOf(K2, Ks...)13.5k
;
527
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
525
13.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.5k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.4k
;
527
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
525
13.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.4k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
527
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
525
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.3k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.3k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
527
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
525
13.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.3k
    return is(K1) || 
isOneOf(K2, Ks...)13.3k
;
527
13.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
525
28
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
28
    return is(K1) || 
isOneOf(K2, Ks...)26
;
527
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
525
26
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
26
    return is(K1) || 
isOneOf(K2, Ks...)22
;
527
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
525
22
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
22
    return is(K1) || 
isOneOf(K2, Ks...)14
;
527
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
525
14
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
14
    return is(K1) || 
isOneOf(K2, Ks...)10
;
527
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
525
10
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
10
    return is(K1) || 
isOneOf(K2, Ks...)8
;
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || 
isOneOf(K2, Ks...)170
;
527
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
525
145k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
145k
    return is(K1) || 
isOneOf(K2, Ks...)145k
;
527
145k
  }
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
525
10.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
10.0k
    return is(K1) || 
isOneOf(K2, Ks...)9.73k
;
527
10.0k
  }
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
525
9.73k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.73k
    return is(K1) || 
isOneOf(K2, Ks...)9.52k
;
527
9.73k
  }
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
525
9.52k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.52k
    return is(K1) || 
isOneOf(K2, Ks...)9.47k
;
527
9.52k
  }
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
525
9.47k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.47k
    return is(K1) || 
isOneOf(K2, Ks...)9.40k
;
527
9.47k
  }
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
525
9.40k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.40k
    return is(K1) || 
isOneOf(K2, Ks...)9.35k
;
527
9.40k
  }
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
525
9.35k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.35k
    return is(K1) || 
isOneOf(K2, Ks...)9.34k
;
527
9.35k
  }
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
525
9.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.34k
    return is(K1) || 
isOneOf(K2, Ks...)9.33k
;
527
9.34k
  }
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
525
9.33k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.33k
    return is(K1) || isOneOf(K2, Ks...);
527
9.33k
  }
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
525
9.33k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.33k
    return is(K1) || 
isOneOf(K2, Ks...)9.29k
;
527
9.33k
  }
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
525
9.29k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
9.29k
    return is(K1) || 
isOneOf(K2, Ks...)9.27k
;
527
9.29k
  }
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
525
242
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
242
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
242
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
242
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
13.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
13.0k
    return is(K1) || 
isOneOf(K2, Ks...)12.7k
;
527
13.0k
  }
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
525
1.51k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.51k
    return is(K1) || 
isOneOf(K2, Ks...)1.45k
;
527
1.51k
  }
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
525
24.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.9k
    return is(K1) || 
isOneOf(K2, Ks...)24.2k
;
527
24.9k
  }
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
525
24.2k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
24.2k
    return is(K1) || 
isOneOf(K2, Ks...)23.9k
;
527
24.2k
  }
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
525
23.9k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
23.9k
    return is(K1) || 
isOneOf(K2, Ks...)23.7k
;
527
23.9k
  }
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
525
188
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
188
    return is(K1) || 
isOneOf(K2, Ks...)176
;
527
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
525
176
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
176
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
176
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
176
    return is(K1) || 
isOneOf(K2, Ks...)172
;
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
172
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
172
    return is(K1) || 
isOneOf(K2, Ks...)168
;
527
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
525
168
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
168
    return is(K1) || 
isOneOf(K2, Ks...)164
;
527
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
525
164
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
164
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.34k
    return is(K1) || 
isOneOf(K2, Ks...)1.34k
;
527
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
525
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.34k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
1.34k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.34k
    return is(K1) || 
isOneOf(K2, Ks...)1.33k
;
527
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
525
1.33k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.33k
    return is(K1) || 
isOneOf(K2, Ks...)1.32k
;
527
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
525
1.32k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.32k
    return is(K1) || 
isOneOf(K2, Ks...)1.32k
;
527
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
525
1.32k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.32k
    return is(K1) || 
isOneOf(K2, Ks...)1.31k
;
527
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
525
1.31k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.31k
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
1.31k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.31k
    return is(K1) || 
isOneOf(K2, Ks...)1.25k
;
527
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
525
1.25k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.25k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
527
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
525
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.10k
;
527
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
525
1.10k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.10k
    return is(K1) || 
isOneOf(K2, Ks...)1.04k
;
527
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
525
1.04k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
1.04k
    return is(K1) || 
isOneOf(K2, Ks...)948
;
527
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
525
948
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
948
    return is(K1) || isOneOf(K2, Ks...);
527
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
525
12.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
526
12.1k
    return is(K1) || 
isOneOf(K2, Ks...)11.3k
;
527
12.1k
  }
528
12.5M
  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
528
78.2k
  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
528
11.2M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
bool clang::format::FormatToken::isNot<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
528
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
528
1.25M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
529
530
265k
  bool isIf(bool AllowConstexprMacro = true) const {
531
265k
    return is(tok::kw_if) || 
endsSequence(tok::kw_constexpr, tok::kw_if)251k
||
532
265k
           
(251k
endsSequence(tok::identifier, tok::kw_if)251k
&&
AllowConstexprMacro705
);
533
265k
  }
534
535
1.60k
  bool closesScopeAfterBlock() const {
536
1.60k
    if (getBlockKind() == BK_Block)
537
68
      return true;
538
1.53k
    if (closesScope())
539
884
      return Previous->closesScopeAfterBlock();
540
651
    return false;
541
1.53k
  }
542
543
  /// \c true if this token starts a sequence with the given tokens in order,
544
  /// following the ``Next`` pointers, ignoring comments.
545
  template <typename A, typename... Ts>
546
1.77M
  bool startsSequence(A K1, Ts... Tokens) const {
547
1.77M
    return startsSequenceInternal(K1, Tokens...);
548
1.77M
  }
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
546
223
  bool startsSequence(A K1, Ts... Tokens) const {
547
223
    return startsSequenceInternal(K1, Tokens...);
548
223
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
546
566k
  bool startsSequence(A K1, Ts... Tokens) const {
547
566k
    return startsSequenceInternal(K1, Tokens...);
548
566k
  }
bool clang::format::FormatToken::startsSequence<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
546
1.08M
  bool startsSequence(A K1, Ts... Tokens) const {
547
1.08M
    return startsSequenceInternal(K1, Tokens...);
548
1.08M
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
546
57.5k
  bool startsSequence(A K1, Ts... Tokens) const {
547
57.5k
    return startsSequenceInternal(K1, Tokens...);
548
57.5k
  }
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
546
629
  bool startsSequence(A K1, Ts... Tokens) const {
547
629
    return startsSequenceInternal(K1, Tokens...);
548
629
  }
bool clang::format::FormatToken::startsSequence<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
546
247
  bool startsSequence(A K1, Ts... Tokens) const {
547
247
    return startsSequenceInternal(K1, Tokens...);
548
247
  }
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
546
25.9k
  bool startsSequence(A K1, Ts... Tokens) const {
547
25.9k
    return startsSequenceInternal(K1, Tokens...);
548
25.9k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
546
2.72k
  bool startsSequence(A K1, Ts... Tokens) const {
547
2.72k
    return startsSequenceInternal(K1, Tokens...);
548
2.72k
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
546
3.98k
  bool startsSequence(A K1, Ts... Tokens) const {
547
3.98k
    return startsSequenceInternal(K1, Tokens...);
548
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
546
3.92k
  bool startsSequence(A K1, Ts... Tokens) const {
547
3.92k
    return startsSequenceInternal(K1, Tokens...);
548
3.92k
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
546
27.0k
  bool startsSequence(A K1, Ts... Tokens) const {
547
27.0k
    return startsSequenceInternal(K1, Tokens...);
548
27.0k
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
546
62
  bool startsSequence(A K1, Ts... Tokens) const {
547
62
    return startsSequenceInternal(K1, Tokens...);
548
62
  }
bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
546
5.50k
  bool startsSequence(A K1, Ts... Tokens) const {
547
5.50k
    return startsSequenceInternal(K1, Tokens...);
548
5.50k
  }
549
550
  /// \c true if this token ends a sequence with the given tokens in order,
551
  /// following the ``Previous`` pointers, ignoring comments.
552
  /// For example, given tokens [T1, T2, T3], the function returns true if
553
  /// 3 tokens ending at this (ignoring comments) are [T3, T2, T1]. In other
554
  /// words, the tokens passed to this function need to the reverse of the
555
  /// order the tokens appear in code.
556
  template <typename A, typename... Ts>
557
530k
  bool endsSequence(A K1, Ts... Tokens) const {
558
530k
    return endsSequenceInternal(K1, Tokens...);
559
530k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
557
503k
  bool endsSequence(A K1, Ts... Tokens) const {
558
503k
    return endsSequenceInternal(K1, Tokens...);
559
503k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
557
9.54k
  bool endsSequence(A K1, Ts... Tokens) const {
558
9.54k
    return endsSequenceInternal(K1, Tokens...);
559
9.54k
  }
bool clang::format::FormatToken::endsSequence<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
557
1.02k
  bool endsSequence(A K1, Ts... Tokens) const {
558
1.02k
    return endsSequenceInternal(K1, Tokens...);
559
1.02k
  }
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
557
319
  bool endsSequence(A K1, Ts... Tokens) const {
558
319
    return endsSequenceInternal(K1, Tokens...);
559
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
557
292
  bool endsSequence(A K1, Ts... Tokens) const {
558
292
    return endsSequenceInternal(K1, Tokens...);
559
292
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
557
14.5k
  bool endsSequence(A K1, Ts... Tokens) const {
558
14.5k
    return endsSequenceInternal(K1, Tokens...);
559
14.5k
  }
bool clang::format::FormatToken::endsSequence<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
557
1.38k
  bool endsSequence(A K1, Ts... Tokens) const {
558
1.38k
    return endsSequenceInternal(K1, Tokens...);
559
1.38k
  }
560
561
5.83M
  bool isStringLiteral() const { return tok::isStringLiteral(Tok.getKind()); }
562
563
87.7k
  bool isObjCAtKeyword(tok::ObjCKeywordKind Kind) const {
564
87.7k
    return Tok.isObjCAtKeyword(Kind);
565
87.7k
  }
566
567
158k
  bool isAccessSpecifier(bool ColonRequired = true) const {
568
158k
    return isOneOf(tok::kw_public, tok::kw_protected, tok::kw_private) &&
569
158k
           
(2.34k
!ColonRequired2.34k
||
(2.32k
Next2.32k
&&
Next->is(tok::colon)2.29k
));
570
158k
  }
571
572
29.6k
  bool canBePointerOrReferenceQualifier() const {
573
29.6k
    return isOneOf(tok::kw_const, tok::kw_restrict, tok::kw_volatile,
574
29.6k
                   tok::kw___attribute, tok::kw__Nonnull, tok::kw__Nullable,
575
29.6k
                   tok::kw__Null_unspecified, tok::kw___ptr32, tok::kw___ptr64,
576
29.6k
                   TT_AttributeMacro);
577
29.6k
  }
578
579
  /// Determine whether the token is a simple-type-specifier.
580
  LLVM_NODISCARD bool isSimpleTypeSpecifier() const;
581
582
  LLVM_NODISCARD bool isTypeOrIdentifier() const;
583
584
73.0k
  bool isObjCAccessSpecifier() const {
585
73.0k
    return is(tok::at) && 
Next561
&&
586
73.0k
           
(561
Next->isObjCAtKeyword(tok::objc_public)561
||
587
561
            
Next->isObjCAtKeyword(tok::objc_protected)551
||
588
561
            
Next->isObjCAtKeyword(tok::objc_package)541
||
589
561
            
Next->isObjCAtKeyword(tok::objc_private)531
);
590
73.0k
  }
591
592
  /// Returns whether \p Tok is ([{ or an opening < of a template or in
593
  /// protos.
594
6.17M
  bool opensScope() const {
595
6.17M
    if (is(TT_TemplateString) && 
TokenText.endswith("${")2.52k
)
596
1.42k
      return true;
597
6.17M
    if (is(TT_DictLiteral) && 
is(tok::less)48.9k
)
598
4.45k
      return true;
599
6.17M
    return isOneOf(tok::l_paren, tok::l_brace, tok::l_square,
600
6.17M
                   TT_TemplateOpener);
601
6.17M
  }
602
  /// Returns whether \p Tok is )]} or a closing > of a template or in
603
  /// protos.
604
7.84M
  bool closesScope() const {
605
7.84M
    if (is(TT_TemplateString) && 
TokenText.startswith("}")2.77k
)
606
2.07k
      return true;
607
7.84M
    if (is(TT_DictLiteral) && 
is(tok::greater)22.8k
)
608
6.31k
      return true;
609
7.83M
    return isOneOf(tok::r_paren, tok::r_brace, tok::r_square,
610
7.83M
                   TT_TemplateCloser);
611
7.84M
  }
612
613
  /// Returns \c true if this is a "." or "->" accessing a member.
614
6.05M
  bool isMemberAccess() const {
615
6.05M
    return isOneOf(tok::arrow, tok::period, tok::arrowstar) &&
616
6.05M
           !isOneOf(TT_DesignatedInitializerPeriod, TT_TrailingReturnArrow,
617
66.5k
                    TT_LambdaArrow, TT_LeadingJavaAnnotation);
618
6.05M
  }
619
620
19.4k
  bool isUnaryOperator() const {
621
19.4k
    switch (Tok.getKind()) {
622
51
    case tok::plus:
623
102
    case tok::plusplus:
624
180
    case tok::minus:
625
204
    case tok::minusminus:
626
258
    case tok::exclaim:
627
336
    case tok::tilde:
628
387
    case tok::kw_sizeof:
629
402
    case tok::kw_alignof:
630
402
      return true;
631
19.0k
    default:
632
19.0k
      return false;
633
19.4k
    }
634
19.4k
  }
635
636
1.86M
  bool isBinaryOperator() const {
637
    // Comma is a binary operator, but does not behave as such wrt. formatting.
638
1.86M
    return getPrecedence() > prec::Comma;
639
1.86M
  }
640
641
2.57M
  bool isTrailingComment() const {
642
2.57M
    return is(tok::comment) &&
643
2.57M
           
(30.6k
is(TT_LineComment)30.6k
||
!Next5.33k
||
Next->NewlinesBefore > 03.38k
);
644
2.57M
  }
645
646
  /// Returns \c true if this is a keyword that can be used
647
  /// like a function call (e.g. sizeof, typeid, ...).
648
0
  bool isFunctionLikeKeyword() const {
649
0
    switch (Tok.getKind()) {
650
0
    case tok::kw_throw:
651
0
    case tok::kw_typeid:
652
0
    case tok::kw_return:
653
0
    case tok::kw_sizeof:
654
0
    case tok::kw_alignof:
655
0
    case tok::kw_alignas:
656
0
    case tok::kw_decltype:
657
0
    case tok::kw_noexcept:
658
0
    case tok::kw_static_assert:
659
0
    case tok::kw__Atomic:
660
0
    case tok::kw___attribute:
661
0
    case tok::kw___underlying_type:
662
0
    case tok::kw_requires:
663
0
      return true;
664
0
    default:
665
0
      return false;
666
0
    }
667
0
  }
668
669
  /// Returns \c true if this is a string literal that's like a label,
670
  /// e.g. ends with "=" or ":".
671
13.4k
  bool isLabelString() const {
672
13.4k
    if (!is(tok::string_literal))
673
12.9k
      return false;
674
488
    StringRef Content = TokenText;
675
488
    if (Content.startswith("\"") || 
Content.startswith("'")197
)
676
383
      Content = Content.drop_front(1);
677
488
    if (Content.endswith("\"") || 
Content.endswith("'")102
)
678
478
      Content = Content.drop_back(1);
679
488
    Content = Content.trim();
680
488
    return Content.size() > 1 &&
681
488
           
(449
Content.back() == ':'449
||
Content.back() == '='365
);
682
13.4k
  }
683
684
  /// Returns actual token start location without leading escaped
685
  /// newlines and whitespace.
686
  ///
687
  /// This can be different to Tok.getLocation(), which includes leading escaped
688
  /// newlines.
689
1.20M
  SourceLocation getStartOfNonWhitespace() const {
690
1.20M
    return WhitespaceRange.getEnd();
691
1.20M
  }
692
693
  /// Returns \c true if the range of whitespace immediately preceding the \c
694
  /// Token is not empty.
695
50.6k
  bool hasWhitespaceBefore() const {
696
50.6k
    return WhitespaceRange.getBegin() != WhitespaceRange.getEnd();
697
50.6k
  }
698
699
4.77M
  prec::Level getPrecedence() const {
700
4.77M
    return getBinOpPrecedence(Tok.getKind(), /*GreaterThanIsOperator=*/true,
701
4.77M
                              /*CPlusPlus11=*/true);
702
4.77M
  }
703
704
  /// Returns the previous token ignoring comments.
705
5.74M
  LLVM_NODISCARD FormatToken *getPreviousNonComment() const {
706
5.74M
    FormatToken *Tok = Previous;
707
5.78M
    while (Tok && 
Tok->is(tok::comment)5.67M
)
708
41.7k
      Tok = Tok->Previous;
709
5.74M
    return Tok;
710
5.74M
  }
711
712
  /// Returns the next token ignoring comments.
713
6.76M
  LLVM_NODISCARD const FormatToken *getNextNonComment() const {
714
6.76M
    const FormatToken *Tok = Next;
715
6.83M
    while (Tok && 
Tok->is(tok::comment)5.09M
)
716
66.4k
      Tok = Tok->Next;
717
6.76M
    return Tok;
718
6.76M
  }
719
720
  /// Returns \c true if this tokens starts a block-type list, i.e. a
721
  /// list that should be indented with a block indent.
722
  LLVM_NODISCARD bool opensBlockOrBlockTypeList(const FormatStyle &Style) const;
723
724
  /// Returns whether the token is the left square bracket of a C++
725
  /// structured binding declaration.
726
14.8k
  bool isCppStructuredBinding(const FormatStyle &Style) const {
727
14.8k
    if (!Style.isCpp() || 
isNot(tok::l_square)14.0k
)
728
752
      return false;
729
14.0k
    const FormatToken *T = this;
730
14.7k
    do {
731
14.7k
      T = T->getPreviousNonComment();
732
14.7k
    } while (T && T->isOneOf(tok::kw_const, tok::kw_volatile, tok::amp,
733
13.0k
                             tok::ampamp));
734
14.0k
    return T && 
T->is(tok::kw_auto)12.3k
;
735
14.8k
  }
736
737
  /// Same as opensBlockOrBlockTypeList, but for the closing token.
738
119k
  bool closesBlockOrBlockTypeList(const FormatStyle &Style) const {
739
119k
    if (is(TT_TemplateString) && 
closesScope()12
)
740
0
      return true;
741
119k
    return MatchingParen && 
MatchingParen->opensBlockOrBlockTypeList(Style)51.6k
;
742
119k
  }
743
744
  /// Return the actual namespace token, if this token starts a namespace
745
  /// block.
746
16.5k
  const FormatToken *getNamespaceToken() const {
747
16.5k
    const FormatToken *NamespaceTok = this;
748
16.5k
    if (is(tok::comment))
749
120
      NamespaceTok = NamespaceTok->getNextNonComment();
750
    // Detect "(inline|export)? namespace" in the beginning of a line.
751
16.5k
    if (NamespaceTok && 
NamespaceTok->isOneOf(tok::kw_inline, tok::kw_export)16.5k
)
752
121
      NamespaceTok = NamespaceTok->getNextNonComment();
753
16.5k
    return NamespaceTok &&
754
16.5k
                   
NamespaceTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro)16.5k
755
16.5k
               ? 
NamespaceTok1.27k
756
16.5k
               : 
nullptr15.2k
;
757
16.5k
  }
758
759
8.91k
  void copyFrom(const FormatToken &Tok) { *this = Tok; }
760
761
private:
762
  // Only allow copying via the explicit copyFrom method.
763
  FormatToken(const FormatToken &) = delete;
764
8.91k
  FormatToken &operator=(const FormatToken &) = default;
765
766
  template <typename A, typename... Ts>
767
130k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
130k
    if (is(tok::comment) && 
Next1.05k
)
769
451
      return Next->startsSequenceInternal(K1, Tokens...);
770
129k
    return is(K1) && 
Next21.6k
&&
Next->startsSequenceInternal(Tokens...)21.6k
;
771
130k
  }
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
767
223
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
223
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
223
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
771
223
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
767
58.6k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
58.6k
    if (is(tok::comment) && 
Next655
)
769
183
      return Next->startsSequenceInternal(K1, Tokens...);
770
58.5k
    return is(K1) && 
Next16.4k
&&
Next->startsSequenceInternal(Tokens...)16.4k
;
771
58.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
767
876
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
876
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
876
    return is(K1) && 
Next633
&&
Next->startsSequenceInternal(Tokens...)633
;
771
876
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
767
3.35k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
3.35k
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
3.35k
    return is(K1) && 
Next3.05k
&&
Next->startsSequenceInternal(Tokens...)3.05k
;
771
3.35k
  }
bool clang::format::FormatToken::startsSequenceInternal<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
767
247
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
247
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
247
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
771
247
  }
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
767
26.1k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
26.1k
    if (is(tok::comment) && 
Next381
)
769
248
      return Next->startsSequenceInternal(K1, Tokens...);
770
25.9k
    return is(K1) && 
Next782
&&
Next->startsSequenceInternal(Tokens...)782
;
771
26.1k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
767
4.12k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
4.12k
    if (is(tok::comment) && 
Next12
)
769
12
      return Next->startsSequenceInternal(K1, Tokens...);
770
4.11k
    return is(K1) && 
Next72
&&
Next->startsSequenceInternal(Tokens...)72
;
771
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
767
3.93k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
3.93k
    if (is(tok::comment) && 
Next8
)
769
8
      return Next->startsSequenceInternal(K1, Tokens...);
770
3.92k
    return is(K1) && 
Next125
&&
Next->startsSequenceInternal(Tokens...)125
;
771
3.93k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
767
27.0k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
27.0k
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
27.0k
    return is(K1) && 
Next88
&&
Next->startsSequenceInternal(Tokens...)88
;
771
27.0k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
767
5.50k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
768
5.50k
    if (is(tok::comment) && 
Next0
)
769
0
      return Next->startsSequenceInternal(K1, Tokens...);
770
5.50k
    return is(K1) && 
Next0
&&
Next->startsSequenceInternal(Tokens...)0
;
771
5.50k
  }
772
773
1.68M
  template <typename A> bool startsSequenceInternal(A K1) const {
774
1.68M
    if (is(tok::comment) && 
Next38.3k
)
775
14.4k
      return Next->startsSequenceInternal(K1);
776
1.67M
    return is(K1);
777
1.68M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
773
586k
  template <typename A> bool startsSequenceInternal(A K1) const {
774
586k
    if (is(tok::comment) && 
Next8.49k
)
775
3.68k
      return Next->startsSequenceInternal(K1);
776
582k
    return is(K1);
777
586k
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
773
1.09M
  template <typename A> bool startsSequenceInternal(A K1) const {
774
1.09M
    if (is(tok::comment) && 
Next29.8k
)
775
10.7k
      return Next->startsSequenceInternal(K1);
776
1.08M
    return is(K1);
777
1.09M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
773
150
  template <typename A> bool startsSequenceInternal(A K1) const {
774
150
    if (is(tok::comment) && 
Next0
)
775
0
      return Next->startsSequenceInternal(K1);
776
150
    return is(K1);
777
150
  }
778
779
198k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
780
198k
    if (is(tok::comment) && 
Previous461
)
781
413
      return Previous->endsSequenceInternal(K1);
782
198k
    return is(K1);
783
198k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
779
197k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
780
197k
    if (is(tok::comment) && 
Previous457
)
781
413
      return Previous->endsSequenceInternal(K1);
782
196k
    return is(K1);
783
197k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Line
Count
Source
779
958
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
780
958
    if (is(tok::comment) && 
Previous4
)
781
0
      return Previous->endsSequenceInternal(K1);
782
958
    return is(K1);
783
958
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
779
138
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
780
138
    if (is(tok::comment) && 
Previous0
)
781
0
      return Previous->endsSequenceInternal(K1);
782
138
    return is(K1);
783
138
  }
784
785
  template <typename A, typename... Ts>
786
521k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
521k
    if (is(tok::comment) && 
Previous462
)
788
458
      return Previous->endsSequenceInternal(K1, Tokens...);
789
521k
    return is(K1) && 
Previous218k
&&
Previous->endsSequenceInternal(Tokens...)189k
;
790
521k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
786
503k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
503k
    if (is(tok::comment) && 
Previous374
)
788
374
      return Previous->endsSequenceInternal(K1, Tokens...);
789
503k
    return is(K1) && 
Previous216k
&&
Previous->endsSequenceInternal(Tokens...)187k
;
790
503k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
786
1.02k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
1.02k
    if (is(tok::comment) && 
Previous0
)
788
0
      return Previous->endsSequenceInternal(K1, Tokens...);
789
1.02k
    return is(K1) && 
Previous16
&&
Previous->endsSequenceInternal(Tokens...)16
;
790
1.02k
  }
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
786
319
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
319
    if (is(tok::comment) && 
Previous0
)
788
0
      return Previous->endsSequenceInternal(K1, Tokens...);
789
319
    return is(K1) && Previous && 
Previous->endsSequenceInternal(Tokens...)271
;
790
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
786
292
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
292
    if (is(tok::comment) && 
Previous0
)
788
0
      return Previous->endsSequenceInternal(K1, Tokens...);
789
292
    return is(K1) && Previous && 
Previous->endsSequenceInternal(Tokens...)268
;
790
292
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
786
268
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
268
    if (is(tok::comment) && 
Previous0
)
788
0
      return Previous->endsSequenceInternal(K1, Tokens...);
789
268
    return is(K1) && 
Previous138
&&
Previous->endsSequenceInternal(Tokens...)138
;
790
268
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
786
14.6k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
14.6k
    if (is(tok::comment) && 
Previous88
)
788
84
      return Previous->endsSequenceInternal(K1, Tokens...);
789
14.5k
    return is(K1) && 
Previous1.41k
&&
Previous->endsSequenceInternal(Tokens...)942
;
790
14.6k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
786
1.38k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
787
1.38k
    if (is(tok::comment) && 
Previous0
)
788
0
      return Previous->endsSequenceInternal(K1, Tokens...);
789
1.38k
    return is(K1) && 
Previous28
&&
Previous->endsSequenceInternal(Tokens...)28
;
790
1.38k
  }
791
};
792
793
class ContinuationIndenter;
794
struct LineState;
795
796
class TokenRole {
797
public:
798
17.1k
  TokenRole(const FormatStyle &Style) : Style(Style) {}
799
  virtual ~TokenRole();
800
801
  /// After the \c TokenAnnotator has finished annotating all the tokens,
802
  /// this function precomputes required information for formatting.
803
  virtual void precomputeFormattingInfos(const FormatToken *Token);
804
805
  /// Apply the special formatting that the given role demands.
806
  ///
807
  /// Assumes that the token having this role is already formatted.
808
  ///
809
  /// Continues formatting from \p State leaving indentation to \p Indenter and
810
  /// returns the total penalty that this formatting incurs.
811
  virtual unsigned formatFromToken(LineState &State,
812
                                   ContinuationIndenter *Indenter,
813
0
                                   bool DryRun) {
814
0
    return 0;
815
0
  }
816
817
  /// Same as \c formatFromToken, but assumes that the first token has
818
  /// already been set thereby deciding on the first line break.
819
  virtual unsigned formatAfterToken(LineState &State,
820
                                    ContinuationIndenter *Indenter,
821
0
                                    bool DryRun) {
822
0
    return 0;
823
0
  }
824
825
  /// Notifies the \c Role that a comma was found.
826
0
  virtual void CommaFound(const FormatToken *Token) {}
827
828
0
  virtual const FormatToken *lastComma() { return nullptr; }
829
830
protected:
831
  const FormatStyle &Style;
832
};
833
834
class CommaSeparatedList : public TokenRole {
835
public:
836
  CommaSeparatedList(const FormatStyle &Style)
837
17.1k
      : TokenRole(Style), HasNestedBracedList(false) {}
838
839
  void precomputeFormattingInfos(const FormatToken *Token) override;
840
841
  unsigned formatAfterToken(LineState &State, ContinuationIndenter *Indenter,
842
                            bool DryRun) override;
843
844
  unsigned formatFromToken(LineState &State, ContinuationIndenter *Indenter,
845
                           bool DryRun) override;
846
847
  /// Adds \p Token as the next comma to the \c CommaSeparated list.
848
30.6k
  void CommaFound(const FormatToken *Token) override {
849
30.6k
    Commas.push_back(Token);
850
30.6k
  }
851
852
141
  const FormatToken *lastComma() override {
853
141
    if (Commas.empty())
854
0
      return nullptr;
855
141
    return Commas.back();
856
141
  }
857
858
private:
859
  /// A struct that holds information on how to format a given list with
860
  /// a specific number of columns.
861
  struct ColumnFormat {
862
    /// The number of columns to use.
863
    unsigned Columns;
864
865
    /// The total width in characters.
866
    unsigned TotalWidth;
867
868
    /// The number of lines required for this format.
869
    unsigned LineCount;
870
871
    /// The size of each column in characters.
872
    SmallVector<unsigned, 8> ColumnSizes;
873
  };
874
875
  /// Calculate which \c ColumnFormat fits best into
876
  /// \p RemainingCharacters.
877
  const ColumnFormat *getColumnFormat(unsigned RemainingCharacters) const;
878
879
  /// The ordered \c FormatTokens making up the commas of this list.
880
  SmallVector<const FormatToken *, 8> Commas;
881
882
  /// The length of each of the list's items in characters including the
883
  /// trailing comma.
884
  SmallVector<unsigned, 8> ItemLengths;
885
886
  /// Precomputed formats that can be used for this list.
887
  SmallVector<ColumnFormat, 4> Formats;
888
889
  bool HasNestedBracedList;
890
};
891
892
/// Encapsulates keywords that are context sensitive or for languages not
893
/// properly supported by Clang's lexer.
894
struct AdditionalKeywords {
895
65.5k
  AdditionalKeywords(IdentifierTable &IdentTable) {
896
65.5k
    kw_final = &IdentTable.get("final");
897
65.5k
    kw_override = &IdentTable.get("override");
898
65.5k
    kw_in = &IdentTable.get("in");
899
65.5k
    kw_of = &IdentTable.get("of");
900
65.5k
    kw_CF_CLOSED_ENUM = &IdentTable.get("CF_CLOSED_ENUM");
901
65.5k
    kw_CF_ENUM = &IdentTable.get("CF_ENUM");
902
65.5k
    kw_CF_OPTIONS = &IdentTable.get("CF_OPTIONS");
903
65.5k
    kw_NS_CLOSED_ENUM = &IdentTable.get("NS_CLOSED_ENUM");
904
65.5k
    kw_NS_ENUM = &IdentTable.get("NS_ENUM");
905
65.5k
    kw_NS_OPTIONS = &IdentTable.get("NS_OPTIONS");
906
907
65.5k
    kw_as = &IdentTable.get("as");
908
65.5k
    kw_async = &IdentTable.get("async");
909
65.5k
    kw_await = &IdentTable.get("await");
910
65.5k
    kw_declare = &IdentTable.get("declare");
911
65.5k
    kw_finally = &IdentTable.get("finally");
912
65.5k
    kw_from = &IdentTable.get("from");
913
65.5k
    kw_function = &IdentTable.get("function");
914
65.5k
    kw_get = &IdentTable.get("get");
915
65.5k
    kw_import = &IdentTable.get("import");
916
65.5k
    kw_infer = &IdentTable.get("infer");
917
65.5k
    kw_is = &IdentTable.get("is");
918
65.5k
    kw_let = &IdentTable.get("let");
919
65.5k
    kw_module = &IdentTable.get("module");
920
65.5k
    kw_readonly = &IdentTable.get("readonly");
921
65.5k
    kw_set = &IdentTable.get("set");
922
65.5k
    kw_type = &IdentTable.get("type");
923
65.5k
    kw_typeof = &IdentTable.get("typeof");
924
65.5k
    kw_var = &IdentTable.get("var");
925
65.5k
    kw_yield = &IdentTable.get("yield");
926
927
65.5k
    kw_abstract = &IdentTable.get("abstract");
928
65.5k
    kw_assert = &IdentTable.get("assert");
929
65.5k
    kw_extends = &IdentTable.get("extends");
930
65.5k
    kw_implements = &IdentTable.get("implements");
931
65.5k
    kw_instanceof = &IdentTable.get("instanceof");
932
65.5k
    kw_interface = &IdentTable.get("interface");
933
65.5k
    kw_native = &IdentTable.get("native");
934
65.5k
    kw_package = &IdentTable.get("package");
935
65.5k
    kw_synchronized = &IdentTable.get("synchronized");
936
65.5k
    kw_throws = &IdentTable.get("throws");
937
65.5k
    kw___except = &IdentTable.get("__except");
938
65.5k
    kw___has_include = &IdentTable.get("__has_include");
939
65.5k
    kw___has_include_next = &IdentTable.get("__has_include_next");
940
941
65.5k
    kw_mark = &IdentTable.get("mark");
942
65.5k
    kw_region = &IdentTable.get("region");
943
944
65.5k
    kw_extend = &IdentTable.get("extend");
945
65.5k
    kw_option = &IdentTable.get("option");
946
65.5k
    kw_optional = &IdentTable.get("optional");
947
65.5k
    kw_repeated = &IdentTable.get("repeated");
948
65.5k
    kw_required = &IdentTable.get("required");
949
65.5k
    kw_returns = &IdentTable.get("returns");
950
951
65.5k
    kw_signals = &IdentTable.get("signals");
952
65.5k
    kw_qsignals = &IdentTable.get("Q_SIGNALS");
953
65.5k
    kw_slots = &IdentTable.get("slots");
954
65.5k
    kw_qslots = &IdentTable.get("Q_SLOTS");
955
956
    // For internal clang-format use.
957
65.5k
    kw_internal_ident_after_define =
958
65.5k
        &IdentTable.get("__CLANG_FORMAT_INTERNAL_IDENT_AFTER_DEFINE__");
959
960
    // C# keywords
961
65.5k
    kw_dollar = &IdentTable.get("dollar");
962
65.5k
    kw_base = &IdentTable.get("base");
963
65.5k
    kw_byte = &IdentTable.get("byte");
964
65.5k
    kw_checked = &IdentTable.get("checked");
965
65.5k
    kw_decimal = &IdentTable.get("decimal");
966
65.5k
    kw_delegate = &IdentTable.get("delegate");
967
65.5k
    kw_event = &IdentTable.get("event");
968
65.5k
    kw_fixed = &IdentTable.get("fixed");
969
65.5k
    kw_foreach = &IdentTable.get("foreach");
970
65.5k
    kw_init = &IdentTable.get("init");
971
65.5k
    kw_implicit = &IdentTable.get("implicit");
972
65.5k
    kw_internal = &IdentTable.get("internal");
973
65.5k
    kw_lock = &IdentTable.get("lock");
974
65.5k
    kw_null = &IdentTable.get("null");
975
65.5k
    kw_object = &IdentTable.get("object");
976
65.5k
    kw_out = &IdentTable.get("out");
977
65.5k
    kw_params = &IdentTable.get("params");
978
65.5k
    kw_ref = &IdentTable.get("ref");
979
65.5k
    kw_string = &IdentTable.get("string");
980
65.5k
    kw_stackalloc = &IdentTable.get("stackalloc");
981
65.5k
    kw_sbyte = &IdentTable.get("sbyte");
982
65.5k
    kw_sealed = &IdentTable.get("sealed");
983
65.5k
    kw_uint = &IdentTable.get("uint");
984
65.5k
    kw_ulong = &IdentTable.get("ulong");
985
65.5k
    kw_unchecked = &IdentTable.get("unchecked");
986
65.5k
    kw_unsafe = &IdentTable.get("unsafe");
987
65.5k
    kw_ushort = &IdentTable.get("ushort");
988
65.5k
    kw_when = &IdentTable.get("when");
989
65.5k
    kw_where = &IdentTable.get("where");
990
991
65.5k
    kw_always = &IdentTable.get("always");
992
65.5k
    kw_always_comb = &IdentTable.get("always_comb");
993
65.5k
    kw_always_ff = &IdentTable.get("always_ff");
994
65.5k
    kw_always_latch = &IdentTable.get("always_latch");
995
65.5k
    kw_assign = &IdentTable.get("assign");
996
65.5k
    kw_assume = &IdentTable.get("assume");
997
65.5k
    kw_automatic = &IdentTable.get("automatic");
998
65.5k
    kw_before = &IdentTable.get("before");
999
65.5k
    kw_begin = &IdentTable.get("begin");
1000
65.5k
    kw_begin_keywords = &IdentTable.get("begin_keywords");
1001
65.5k
    kw_bins = &IdentTable.get("bins");
1002
65.5k
    kw_binsof = &IdentTable.get("binsof");
1003
65.5k
    kw_casex = &IdentTable.get("casex");
1004
65.5k
    kw_casez = &IdentTable.get("casez");
1005
65.5k
    kw_celldefine = &IdentTable.get("celldefine");
1006
65.5k
    kw_checker = &IdentTable.get("checker");
1007
65.5k
    kw_clocking = &IdentTable.get("clocking");
1008
65.5k
    kw_constraint = &IdentTable.get("constraint");
1009
65.5k
    kw_cover = &IdentTable.get("cover");
1010
65.5k
    kw_covergroup = &IdentTable.get("covergroup");
1011
65.5k
    kw_coverpoint = &IdentTable.get("coverpoint");
1012
65.5k
    kw_default_decay_time = &IdentTable.get("default_decay_time");
1013
65.5k
    kw_default_nettype = &IdentTable.get("default_nettype");
1014
65.5k
    kw_default_trireg_strength = &IdentTable.get("default_trireg_strength");
1015
65.5k
    kw_delay_mode_distributed = &IdentTable.get("delay_mode_distributed");
1016
65.5k
    kw_delay_mode_path = &IdentTable.get("delay_mode_path");
1017
65.5k
    kw_delay_mode_unit = &IdentTable.get("delay_mode_unit");
1018
65.5k
    kw_delay_mode_zero = &IdentTable.get("delay_mode_zero");
1019
65.5k
    kw_disable = &IdentTable.get("disable");
1020
65.5k
    kw_dist = &IdentTable.get("dist");
1021
65.5k
    kw_elsif = &IdentTable.get("elsif");
1022
65.5k
    kw_end = &IdentTable.get("end");
1023
65.5k
    kw_end_keywords = &IdentTable.get("end_keywords");
1024
65.5k
    kw_endcase = &IdentTable.get("endcase");
1025
65.5k
    kw_endcelldefine = &IdentTable.get("endcelldefine");
1026
65.5k
    kw_endchecker = &IdentTable.get("endchecker");
1027
65.5k
    kw_endclass = &IdentTable.get("endclass");
1028
65.5k
    kw_endclocking = &IdentTable.get("endclocking");
1029
65.5k
    kw_endfunction = &IdentTable.get("endfunction");
1030
65.5k
    kw_endgenerate = &IdentTable.get("endgenerate");
1031
65.5k
    kw_endgroup = &IdentTable.get("endgroup");
1032
65.5k
    kw_endinterface = &IdentTable.get("endinterface");
1033
65.5k
    kw_endmodule = &IdentTable.get("endmodule");
1034
65.5k
    kw_endpackage = &IdentTable.get("endpackage");
1035
65.5k
    kw_endprimitive = &IdentTable.get("endprimitive");
1036
65.5k
    kw_endprogram = &IdentTable.get("endprogram");
1037
65.5k
    kw_endproperty = &IdentTable.get("endproperty");
1038
65.5k
    kw_endsequence = &IdentTable.get("endsequence");
1039
65.5k
    kw_endspecify = &IdentTable.get("endspecify");
1040
65.5k
    kw_endtable = &IdentTable.get("endtable");
1041
65.5k
    kw_endtask = &IdentTable.get("endtask");
1042
65.5k
    kw_forever = &IdentTable.get("forever");
1043
65.5k
    kw_fork = &IdentTable.get("fork");
1044
65.5k
    kw_generate = &IdentTable.get("generate");
1045
65.5k
    kw_highz0 = &IdentTable.get("highz0");
1046
65.5k
    kw_highz1 = &IdentTable.get("highz1");
1047
65.5k
    kw_iff = &IdentTable.get("iff");
1048
65.5k
    kw_ifnone = &IdentTable.get("ifnone");
1049
65.5k
    kw_ignore_bins = &IdentTable.get("ignore_bins");
1050
65.5k
    kw_illegal_bins = &IdentTable.get("illegal_bins");
1051
65.5k
    kw_initial = &IdentTable.get("initial");
1052
65.5k
    kw_inout = &IdentTable.get("inout");
1053
65.5k
    kw_input = &IdentTable.get("input");
1054
65.5k
    kw_inside = &IdentTable.get("inside");
1055
65.5k
    kw_interconnect = &IdentTable.get("interconnect");
1056
65.5k
    kw_intersect = &IdentTable.get("intersect");
1057
65.5k
    kw_join = &IdentTable.get("join");
1058
65.5k
    kw_join_any = &IdentTable.get("join_any");
1059
65.5k
    kw_join_none = &IdentTable.get("join_none");
1060
65.5k
    kw_large = &IdentTable.get("large");
1061
65.5k
    kw_local = &IdentTable.get("local");
1062
65.5k
    kw_localparam = &IdentTable.get("localparam");
1063
65.5k
    kw_macromodule = &IdentTable.get("macromodule");
1064
65.5k
    kw_matches = &IdentTable.get("matches");
1065
65.5k
    kw_medium = &IdentTable.get("medium");
1066
65.5k
    kw_nounconnected_drive = &IdentTable.get("nounconnected_drive");
1067
65.5k
    kw_output = &IdentTable.get("output");
1068
65.5k
    kw_packed = &IdentTable.get("packed");
1069
65.5k
    kw_parameter = &IdentTable.get("parameter");
1070
65.5k
    kw_primitive = &IdentTable.get("primitive");
1071
65.5k
    kw_priority = &IdentTable.get("priority");
1072
65.5k
    kw_program = &IdentTable.get("program");
1073
65.5k
    kw_property = &IdentTable.get("property");
1074
65.5k
    kw_pull0 = &IdentTable.get("pull0");
1075
65.5k
    kw_pull1 = &IdentTable.get("pull1");
1076
65.5k
    kw_pure = &IdentTable.get("pure");
1077
65.5k
    kw_rand = &IdentTable.get("rand");
1078
65.5k
    kw_randc = &IdentTable.get("randc");
1079
65.5k
    kw_randcase = &IdentTable.get("randcase");
1080
65.5k
    kw_randsequence = &IdentTable.get("randsequence");
1081
65.5k
    kw_repeat = &IdentTable.get("repeat");
1082
65.5k
    kw_resetall = &IdentTable.get("resetall");
1083
65.5k
    kw_sample = &IdentTable.get("sample");
1084
65.5k
    kw_scalared = &IdentTable.get("scalared");
1085
65.5k
    kw_sequence = &IdentTable.get("sequence");
1086
65.5k
    kw_small = &IdentTable.get("small");
1087
65.5k
    kw_soft = &IdentTable.get("soft");
1088
65.5k
    kw_solve = &IdentTable.get("solve");
1089
65.5k
    kw_specify = &IdentTable.get("specify");
1090
65.5k
    kw_specparam = &IdentTable.get("specparam");
1091
65.5k
    kw_strong0 = &IdentTable.get("strong0");
1092
65.5k
    kw_strong1 = &IdentTable.get("strong1");
1093
65.5k
    kw_supply0 = &IdentTable.get("supply0");
1094
65.5k
    kw_supply1 = &IdentTable.get("supply1");
1095
65.5k
    kw_table = &IdentTable.get("table");
1096
65.5k
    kw_tagged = &IdentTable.get("tagged");
1097
65.5k
    kw_task = &IdentTable.get("task");
1098
65.5k
    kw_timescale = &IdentTable.get("timescale");
1099
65.5k
    kw_tri = &IdentTable.get("tri");
1100
65.5k
    kw_tri0 = &IdentTable.get("tri0");
1101
65.5k
    kw_tri1 = &IdentTable.get("tri1");
1102
65.5k
    kw_triand = &IdentTable.get("triand");
1103
65.5k
    kw_trior = &IdentTable.get("trior");
1104
65.5k
    kw_trireg = &IdentTable.get("trireg");
1105
65.5k
    kw_unconnected_drive = &IdentTable.get("unconnected_drive");
1106
65.5k
    kw_undefineall = &IdentTable.get("undefineall");
1107
65.5k
    kw_unique = &IdentTable.get("unique");
1108
65.5k
    kw_unique0 = &IdentTable.get("unique0");
1109
65.5k
    kw_uwire = &IdentTable.get("uwire");
1110
65.5k
    kw_vectored = &IdentTable.get("vectored");
1111
65.5k
    kw_wand = &IdentTable.get("wand");
1112
65.5k
    kw_weak0 = &IdentTable.get("weak0");
1113
65.5k
    kw_weak1 = &IdentTable.get("weak1");
1114
65.5k
    kw_wildcard = &IdentTable.get("wildcard");
1115
65.5k
    kw_wire = &IdentTable.get("wire");
1116
65.5k
    kw_with = &IdentTable.get("with");
1117
65.5k
    kw_wor = &IdentTable.get("wor");
1118
1119
    // Symbols that are treated as keywords.
1120
65.5k
    kw_verilogHash = &IdentTable.get("#");
1121
65.5k
    kw_verilogHashHash = &IdentTable.get("##");
1122
1123
    // Keep this at the end of the constructor to make sure everything here
1124
    // is
1125
    // already initialized.
1126
65.5k
    JsExtraKeywords = std::unordered_set<IdentifierInfo *>(
1127
65.5k
        {kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
1128
65.5k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_override,
1129
65.5k
         kw_readonly, kw_set, kw_type, kw_typeof, kw_var, kw_yield,
1130
         // Keywords from the Java section.
1131
65.5k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
1132
1133
65.5k
    CSharpExtraKeywords = std::unordered_set<IdentifierInfo *>(
1134
65.5k
        {kw_base, kw_byte, kw_checked, kw_decimal, kw_delegate, kw_event,
1135
65.5k
         kw_fixed, kw_foreach, kw_implicit, kw_in, kw_init, kw_interface,
1136
65.5k
         kw_internal, kw_is, kw_lock, kw_null, kw_object, kw_out, kw_override,
1137
65.5k
         kw_params, kw_readonly, kw_ref, kw_string, kw_stackalloc, kw_sbyte,
1138
65.5k
         kw_sealed, kw_uint, kw_ulong, kw_unchecked, kw_unsafe, kw_ushort,
1139
65.5k
         kw_when, kw_where,
1140
         // Keywords from the JavaScript section.
1141
65.5k
         kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
1142
65.5k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_readonly,
1143
65.5k
         kw_set, kw_type, kw_typeof, kw_var, kw_yield,
1144
         // Keywords from the Java section.
1145
65.5k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
1146
1147
    // Some keywords are not included here because they don't need special
1148
    // treatment like `showcancelled` or they should be treated as identifiers
1149
    // like `int` and `logic`.
1150
65.5k
    VerilogExtraKeywords =
1151
65.5k
        std::unordered_set<IdentifierInfo *>({kw_always,
1152
65.5k
                                              kw_always_comb,
1153
65.5k
                                              kw_always_ff,
1154
65.5k
                                              kw_always_latch,
1155
65.5k
                                              kw_assert,
1156
65.5k
                                              kw_assign,
1157
65.5k
                                              kw_assume,
1158
65.5k
                                              kw_automatic,
1159
65.5k
                                              kw_before,
1160
65.5k
                                              kw_begin,
1161
65.5k
                                              kw_bins,
1162
65.5k
                                              kw_binsof,
1163
65.5k
                                              kw_casex,
1164
65.5k
                                              kw_casez,
1165
65.5k
                                              kw_celldefine,
1166
65.5k
                                              kw_checker,
1167
65.5k
                                              kw_clocking,
1168
65.5k
                                              kw_constraint,
1169
65.5k
                                              kw_cover,
1170
65.5k
                                              kw_covergroup,
1171
65.5k
                                              kw_coverpoint,
1172
65.5k
                                              kw_disable,
1173
65.5k
                                              kw_dist,
1174
65.5k
                                              kw_end,
1175
65.5k
                                              kw_endcase,
1176
65.5k
                                              kw_endchecker,
1177
65.5k
                                              kw_endclass,
1178
65.5k
                                              kw_endclocking,
1179
65.5k
                                              kw_endfunction,
1180
65.5k
                                              kw_endgenerate,
1181
65.5k
                                              kw_endgroup,
1182
65.5k
                                              kw_endinterface,
1183
65.5k
                                              kw_endmodule,
1184
65.5k
                                              kw_endpackage,
1185
65.5k
                                              kw_endprimitive,
1186
65.5k
                                              kw_endprogram,
1187
65.5k
                                              kw_endproperty,
1188
65.5k
                                              kw_endsequence,
1189
65.5k
                                              kw_endspecify,
1190
65.5k
                                              kw_endtable,
1191
65.5k
                                              kw_endtask,
1192
65.5k
                                              kw_extends,
1193
65.5k
                                              kw_final,
1194
65.5k
                                              kw_foreach,
1195
65.5k
                                              kw_forever,
1196
65.5k
                                              kw_fork,
1197
65.5k
                                              kw_function,
1198
65.5k
                                              kw_generate,
1199
65.5k
                                              kw_highz0,
1200
65.5k
                                              kw_highz1,
1201
65.5k
                                              kw_iff,
1202
65.5k
                                              kw_ifnone,
1203
65.5k
                                              kw_ignore_bins,
1204
65.5k
                                              kw_illegal_bins,
1205
65.5k
                                              kw_implements,
1206
65.5k
                                              kw_import,
1207
65.5k
                                              kw_initial,
1208
65.5k
                                              kw_inout,
1209
65.5k
                                              kw_input,
1210
65.5k
                                              kw_inside,
1211
65.5k
                                              kw_interconnect,
1212
65.5k
                                              kw_interface,
1213
65.5k
                                              kw_intersect,
1214
65.5k
                                              kw_join,
1215
65.5k
                                              kw_join_any,
1216
65.5k
                                              kw_join_none,
1217
65.5k
                                              kw_large,
1218
65.5k
                                              kw_let,
1219
65.5k
                                              kw_local,
1220
65.5k
                                              kw_localparam,
1221
65.5k
                                              kw_macromodule,
1222
65.5k
                                              kw_matches,
1223
65.5k
                                              kw_medium,
1224
65.5k
                                              kw_output,
1225
65.5k
                                              kw_package,
1226
65.5k
                                              kw_packed,
1227
65.5k
                                              kw_parameter,
1228
65.5k
                                              kw_primitive,
1229
65.5k
                                              kw_priority,
1230
65.5k
                                              kw_program,
1231
65.5k
                                              kw_property,
1232
65.5k
                                              kw_pull0,
1233
65.5k
                                              kw_pull1,
1234
65.5k
                                              kw_pure,
1235
65.5k
                                              kw_rand,
1236
65.5k
                                              kw_randc,
1237
65.5k
                                              kw_randcase,
1238
65.5k
                                              kw_randsequence,
1239
65.5k
                                              kw_ref,
1240
65.5k
                                              kw_repeat,
1241
65.5k
                                              kw_sample,
1242
65.5k
                                              kw_scalared,
1243
65.5k
                                              kw_sequence,
1244
65.5k
                                              kw_small,
1245
65.5k
                                              kw_soft,
1246
65.5k
                                              kw_solve,
1247
65.5k
                                              kw_specify,
1248
65.5k
                                              kw_specparam,
1249
65.5k
                                              kw_strong0,
1250
65.5k
                                              kw_strong1,
1251
65.5k
                                              kw_supply0,
1252
65.5k
                                              kw_supply1,
1253
65.5k
                                              kw_table,
1254
65.5k
                                              kw_tagged,
1255
65.5k
                                              kw_task,
1256
65.5k
                                              kw_tri,
1257
65.5k
                                              kw_tri0,
1258
65.5k
                                              kw_tri1,
1259
65.5k
                                              kw_triand,
1260
65.5k
                                              kw_trior,
1261
65.5k
                                              kw_trireg,
1262
65.5k
                                              kw_unique,
1263
65.5k
                                              kw_unique0,
1264
65.5k
                                              kw_uwire,
1265
65.5k
                                              kw_var,
1266
65.5k
                                              kw_vectored,
1267
65.5k
                                              kw_wand,
1268
65.5k
                                              kw_weak0,
1269
65.5k
                                              kw_weak1,
1270
65.5k
                                              kw_wildcard,
1271
65.5k
                                              kw_wire,
1272
65.5k
                                              kw_with,
1273
65.5k
                                              kw_wor,
1274
65.5k
                                              kw_verilogHash,
1275
65.5k
                                              kw_verilogHashHash});
1276
65.5k
  }
1277
1278
  // Context sensitive keywords.
1279
  IdentifierInfo *kw_final;
1280
  IdentifierInfo *kw_override;
1281
  IdentifierInfo *kw_in;
1282
  IdentifierInfo *kw_of;
1283
  IdentifierInfo *kw_CF_CLOSED_ENUM;
1284
  IdentifierInfo *kw_CF_ENUM;
1285
  IdentifierInfo *kw_CF_OPTIONS;
1286
  IdentifierInfo *kw_NS_CLOSED_ENUM;
1287
  IdentifierInfo *kw_NS_ENUM;
1288
  IdentifierInfo *kw_NS_OPTIONS;
1289
  IdentifierInfo *kw___except;
1290
  IdentifierInfo *kw___has_include;
1291
  IdentifierInfo *kw___has_include_next;
1292
1293
  // JavaScript keywords.
1294
  IdentifierInfo *kw_as;
1295
  IdentifierInfo *kw_async;
1296
  IdentifierInfo *kw_await;
1297
  IdentifierInfo *kw_declare;
1298
  IdentifierInfo *kw_finally;
1299
  IdentifierInfo *kw_from;
1300
  IdentifierInfo *kw_function;
1301
  IdentifierInfo *kw_get;
1302
  IdentifierInfo *kw_import;
1303
  IdentifierInfo *kw_infer;
1304
  IdentifierInfo *kw_is;
1305
  IdentifierInfo *kw_let;
1306
  IdentifierInfo *kw_module;
1307
  IdentifierInfo *kw_readonly;
1308
  IdentifierInfo *kw_set;
1309
  IdentifierInfo *kw_type;
1310
  IdentifierInfo *kw_typeof;
1311
  IdentifierInfo *kw_var;
1312
  IdentifierInfo *kw_yield;
1313
1314
  // Java keywords.
1315
  IdentifierInfo *kw_abstract;
1316
  IdentifierInfo *kw_assert;
1317
  IdentifierInfo *kw_extends;
1318
  IdentifierInfo *kw_implements;
1319
  IdentifierInfo *kw_instanceof;
1320
  IdentifierInfo *kw_interface;
1321
  IdentifierInfo *kw_native;
1322
  IdentifierInfo *kw_package;
1323
  IdentifierInfo *kw_synchronized;
1324
  IdentifierInfo *kw_throws;
1325
1326
  // Pragma keywords.
1327
  IdentifierInfo *kw_mark;
1328
  IdentifierInfo *kw_region;
1329
1330
  // Proto keywords.
1331
  IdentifierInfo *kw_extend;
1332
  IdentifierInfo *kw_option;
1333
  IdentifierInfo *kw_optional;
1334
  IdentifierInfo *kw_repeated;
1335
  IdentifierInfo *kw_required;
1336
  IdentifierInfo *kw_returns;
1337
1338
  // QT keywords.
1339
  IdentifierInfo *kw_signals;
1340
  IdentifierInfo *kw_qsignals;
1341
  IdentifierInfo *kw_slots;
1342
  IdentifierInfo *kw_qslots;
1343
1344
  // For internal use by clang-format.
1345
  IdentifierInfo *kw_internal_ident_after_define;
1346
1347
  // C# keywords
1348
  IdentifierInfo *kw_dollar;
1349
  IdentifierInfo *kw_base;
1350
  IdentifierInfo *kw_byte;
1351
  IdentifierInfo *kw_checked;
1352
  IdentifierInfo *kw_decimal;
1353
  IdentifierInfo *kw_delegate;
1354
  IdentifierInfo *kw_event;
1355
  IdentifierInfo *kw_fixed;
1356
  IdentifierInfo *kw_foreach;
1357
  IdentifierInfo *kw_implicit;
1358
  IdentifierInfo *kw_init;
1359
  IdentifierInfo *kw_internal;
1360
1361
  IdentifierInfo *kw_lock;
1362
  IdentifierInfo *kw_null;
1363
  IdentifierInfo *kw_object;
1364
  IdentifierInfo *kw_out;
1365
1366
  IdentifierInfo *kw_params;
1367
1368
  IdentifierInfo *kw_ref;
1369
  IdentifierInfo *kw_string;
1370
  IdentifierInfo *kw_stackalloc;
1371
  IdentifierInfo *kw_sbyte;
1372
  IdentifierInfo *kw_sealed;
1373
  IdentifierInfo *kw_uint;
1374
  IdentifierInfo *kw_ulong;
1375
  IdentifierInfo *kw_unchecked;
1376
  IdentifierInfo *kw_unsafe;
1377
  IdentifierInfo *kw_ushort;
1378
  IdentifierInfo *kw_when;
1379
  IdentifierInfo *kw_where;
1380
1381
  // Verilog keywords
1382
  IdentifierInfo *kw_always;
1383
  IdentifierInfo *kw_always_comb;
1384
  IdentifierInfo *kw_always_ff;
1385
  IdentifierInfo *kw_always_latch;
1386
  IdentifierInfo *kw_assign;
1387
  IdentifierInfo *kw_assume;
1388
  IdentifierInfo *kw_automatic;
1389
  IdentifierInfo *kw_before;
1390
  IdentifierInfo *kw_begin;
1391
  IdentifierInfo *kw_begin_keywords;
1392
  IdentifierInfo *kw_bins;
1393
  IdentifierInfo *kw_binsof;
1394
  IdentifierInfo *kw_casex;
1395
  IdentifierInfo *kw_casez;
1396
  IdentifierInfo *kw_celldefine;
1397
  IdentifierInfo *kw_checker;
1398
  IdentifierInfo *kw_clocking;
1399
  IdentifierInfo *kw_constraint;
1400
  IdentifierInfo *kw_cover;
1401
  IdentifierInfo *kw_covergroup;
1402
  IdentifierInfo *kw_coverpoint;
1403
  IdentifierInfo *kw_default_decay_time;
1404
  IdentifierInfo *kw_default_nettype;
1405
  IdentifierInfo *kw_default_trireg_strength;
1406
  IdentifierInfo *kw_delay_mode_distributed;
1407
  IdentifierInfo *kw_delay_mode_path;
1408
  IdentifierInfo *kw_delay_mode_unit;
1409
  IdentifierInfo *kw_delay_mode_zero;
1410
  IdentifierInfo *kw_disable;
1411
  IdentifierInfo *kw_dist;
1412
  IdentifierInfo *kw_elsif;
1413
  IdentifierInfo *kw_end;
1414
  IdentifierInfo *kw_end_keywords;
1415
  IdentifierInfo *kw_endcase;
1416
  IdentifierInfo *kw_endcelldefine;
1417
  IdentifierInfo *kw_endchecker;
1418
  IdentifierInfo *kw_endclass;
1419
  IdentifierInfo *kw_endclocking;
1420
  IdentifierInfo *kw_endfunction;
1421
  IdentifierInfo *kw_endgenerate;
1422
  IdentifierInfo *kw_endgroup;
1423
  IdentifierInfo *kw_endinterface;
1424
  IdentifierInfo *kw_endmodule;
1425
  IdentifierInfo *kw_endpackage;
1426
  IdentifierInfo *kw_endprimitive;
1427
  IdentifierInfo *kw_endprogram;
1428
  IdentifierInfo *kw_endproperty;
1429
  IdentifierInfo *kw_endsequence;
1430
  IdentifierInfo *kw_endspecify;
1431
  IdentifierInfo *kw_endtable;
1432
  IdentifierInfo *kw_endtask;
1433
  IdentifierInfo *kw_forever;
1434
  IdentifierInfo *kw_fork;
1435
  IdentifierInfo *kw_generate;
1436
  IdentifierInfo *kw_highz0;
1437
  IdentifierInfo *kw_highz1;
1438
  IdentifierInfo *kw_iff;
1439
  IdentifierInfo *kw_ifnone;
1440
  IdentifierInfo *kw_ignore_bins;
1441
  IdentifierInfo *kw_illegal_bins;
1442
  IdentifierInfo *kw_initial;
1443
  IdentifierInfo *kw_inout;
1444
  IdentifierInfo *kw_input;
1445
  IdentifierInfo *kw_inside;
1446
  IdentifierInfo *kw_interconnect;
1447
  IdentifierInfo *kw_intersect;
1448
  IdentifierInfo *kw_join;
1449
  IdentifierInfo *kw_join_any;
1450
  IdentifierInfo *kw_join_none;
1451
  IdentifierInfo *kw_large;
1452
  IdentifierInfo *kw_local;
1453
  IdentifierInfo *kw_localparam;
1454
  IdentifierInfo *kw_macromodule;
1455
  IdentifierInfo *kw_matches;
1456
  IdentifierInfo *kw_medium;
1457
  IdentifierInfo *kw_nounconnected_drive;
1458
  IdentifierInfo *kw_output;
1459
  IdentifierInfo *kw_packed;
1460
  IdentifierInfo *kw_parameter;
1461
  IdentifierInfo *kw_primitive;
1462
  IdentifierInfo *kw_priority;
1463
  IdentifierInfo *kw_program;
1464
  IdentifierInfo *kw_property;
1465
  IdentifierInfo *kw_pull0;
1466
  IdentifierInfo *kw_pull1;
1467
  IdentifierInfo *kw_pure;
1468
  IdentifierInfo *kw_rand;
1469
  IdentifierInfo *kw_randc;
1470
  IdentifierInfo *kw_randcase;
1471
  IdentifierInfo *kw_randsequence;
1472
  IdentifierInfo *kw_repeat;
1473
  IdentifierInfo *kw_resetall;
1474
  IdentifierInfo *kw_sample;
1475
  IdentifierInfo *kw_scalared;
1476
  IdentifierInfo *kw_sequence;
1477
  IdentifierInfo *kw_small;
1478
  IdentifierInfo *kw_soft;
1479
  IdentifierInfo *kw_solve;
1480
  IdentifierInfo *kw_specify;
1481
  IdentifierInfo *kw_specparam;
1482
  IdentifierInfo *kw_strong0;
1483
  IdentifierInfo *kw_strong1;
1484
  IdentifierInfo *kw_supply0;
1485
  IdentifierInfo *kw_supply1;
1486
  IdentifierInfo *kw_table;
1487
  IdentifierInfo *kw_tagged;
1488
  IdentifierInfo *kw_task;
1489
  IdentifierInfo *kw_timescale;
1490
  IdentifierInfo *kw_tri0;
1491
  IdentifierInfo *kw_tri1;
1492
  IdentifierInfo *kw_tri;
1493
  IdentifierInfo *kw_triand;
1494
  IdentifierInfo *kw_trior;
1495
  IdentifierInfo *kw_trireg;
1496
  IdentifierInfo *kw_unconnected_drive;
1497
  IdentifierInfo *kw_undefineall;
1498
  IdentifierInfo *kw_unique;
1499
  IdentifierInfo *kw_unique0;
1500
  IdentifierInfo *kw_uwire;
1501
  IdentifierInfo *kw_vectored;
1502
  IdentifierInfo *kw_wand;
1503
  IdentifierInfo *kw_weak0;
1504
  IdentifierInfo *kw_weak1;
1505
  IdentifierInfo *kw_wildcard;
1506
  IdentifierInfo *kw_wire;
1507
  IdentifierInfo *kw_with;
1508
  IdentifierInfo *kw_wor;
1509
1510
  // Workaround for hashes and backticks in Verilog.
1511
  IdentifierInfo *kw_verilogHash;
1512
  IdentifierInfo *kw_verilogHashHash;
1513
1514
  /// Returns \c true if \p Tok is a keyword or an identifier.
1515
393k
  bool isWordLike(const FormatToken &Tok) const {
1516
    // getIdentifierinfo returns non-null for keywords as well as identifiers.
1517
393k
    return Tok.Tok.getIdentifierInfo() != nullptr &&
1518
393k
           
!Tok.isOneOf(kw_verilogHash, kw_verilogHashHash)136k
;
1519
393k
  }
1520
1521
  /// Returns \c true if \p Tok is a true JavaScript identifier, returns
1522
  /// \c false if it is a keyword or a pseudo keyword.
1523
  /// If \c AcceptIdentifierName is true, returns true not only for keywords,
1524
  // but also for IdentifierName tokens (aka pseudo-keywords), such as
1525
  // ``yield``.
1526
  bool IsJavaScriptIdentifier(const FormatToken &Tok,
1527
12.4k
                              bool AcceptIdentifierName = true) const {
1528
    // Based on the list of JavaScript & TypeScript keywords here:
1529
    // https://github.com/microsoft/TypeScript/blob/main/src/compiler/scanner.ts#L74
1530
12.4k
    switch (Tok.Tok.getKind()) {
1531
2
    case tok::kw_break:
1532
14
    case tok::kw_case:
1533
20
    case tok::kw_catch:
1534
26
    case tok::kw_class:
1535
28
    case tok::kw_continue:
1536
32
    case tok::kw_const:
1537
44
    case tok::kw_default:
1538
50
    case tok::kw_delete:
1539
52
    case tok::kw_do:
1540
54
    case tok::kw_else:
1541
58
    case tok::kw_enum:
1542
80
    case tok::kw_export:
1543
88
    case tok::kw_false:
1544
114
    case tok::kw_for:
1545
138
    case tok::kw_if:
1546
138
    case tok::kw_import:
1547
138
    case tok::kw_module:
1548
140
    case tok::kw_new:
1549
140
    case tok::kw_private:
1550
140
    case tok::kw_protected:
1551
140
    case tok::kw_public:
1552
262
    case tok::kw_return:
1553
266
    case tok::kw_static:
1554
274
    case tok::kw_switch:
1555
321
    case tok::kw_this:
1556
325
    case tok::kw_throw:
1557
331
    case tok::kw_true:
1558
336
    case tok::kw_try:
1559
338
    case tok::kw_typeof:
1560
344
    case tok::kw_void:
1561
348
    case tok::kw_while:
1562
      // These are JS keywords that are lexed by LLVM/clang as keywords.
1563
348
      return false;
1564
4.34k
    case tok::identifier: {
1565
      // For identifiers, make sure they are true identifiers, excluding the
1566
      // JavaScript pseudo-keywords (not lexed by LLVM/clang as keywords).
1567
4.34k
      bool IsPseudoKeyword =
1568
4.34k
          JsExtraKeywords.find(Tok.Tok.getIdentifierInfo()) !=
1569
4.34k
          JsExtraKeywords.end();
1570
4.34k
      return AcceptIdentifierName || 
!IsPseudoKeyword4.27k
;
1571
344
    }
1572
7.79k
    default:
1573
      // Other keywords are handled in the switch below, to avoid problems due
1574
      // to duplicate case labels when using the #include trick.
1575
7.79k
      break;
1576
12.4k
    }
1577
1578
7.79k
    switch (Tok.Tok.getKind()) {
1579
      // Handle C++ keywords not included above: these are all JS identifiers.
1580
60.6k
#define KEYWORD(X, Y) case tok::kw_##X:
1581
256
#include 
"clang/Basic/TokenKinds.def"0
1582
      // #undef KEYWORD is not needed -- it's #undef-ed at the end of
1583
      // TokenKinds.def
1584
256
      return true;
1585
7.53k
    default:
1586
      // All other tokens (punctuation etc) are not JS identifiers.
1587
7.53k
      return false;
1588
7.79k
    }
1589
7.79k
  }
1590
1591
  /// Returns \c true if \p Tok is a C# keyword, returns
1592
  /// \c false if it is a anything else.
1593
28
  bool isCSharpKeyword(const FormatToken &Tok) const {
1594
28
    switch (Tok.Tok.getKind()) {
1595
0
    case tok::kw_bool:
1596
0
    case tok::kw_break:
1597
0
    case tok::kw_case:
1598
0
    case tok::kw_catch:
1599
0
    case tok::kw_char:
1600
0
    case tok::kw_class:
1601
0
    case tok::kw_const:
1602
0
    case tok::kw_continue:
1603
0
    case tok::kw_default:
1604
0
    case tok::kw_do:
1605
0
    case tok::kw_double:
1606
0
    case tok::kw_else:
1607
8
    case tok::kw_enum:
1608
8
    case tok::kw_explicit:
1609
8
    case tok::kw_extern:
1610
8
    case tok::kw_false:
1611
8
    case tok::kw_float:
1612
8
    case tok::kw_for:
1613
8
    case tok::kw_goto:
1614
8
    case tok::kw_if:
1615
8
    case tok::kw_int:
1616
8
    case tok::kw_long:
1617
8
    case tok::kw_namespace:
1618
8
    case tok::kw_new:
1619
8
    case tok::kw_operator:
1620
8
    case tok::kw_private:
1621
8
    case tok::kw_protected:
1622
8
    case tok::kw_public:
1623
8
    case tok::kw_return:
1624
8
    case tok::kw_short:
1625
8
    case tok::kw_sizeof:
1626
8
    case tok::kw_static:
1627
8
    case tok::kw_struct:
1628
8
    case tok::kw_switch:
1629
8
    case tok::kw_this:
1630
8
    case tok::kw_throw:
1631
8
    case tok::kw_true:
1632
8
    case tok::kw_try:
1633
8
    case tok::kw_typeof:
1634
8
    case tok::kw_using:
1635
8
    case tok::kw_virtual:
1636
8
    case tok::kw_void:
1637
8
    case tok::kw_volatile:
1638
8
    case tok::kw_while:
1639
8
      return true;
1640
20
    default:
1641
20
      return Tok.is(tok::identifier) &&
1642
20
             CSharpExtraKeywords.find(Tok.Tok.getIdentifierInfo()) ==
1643
8
                 CSharpExtraKeywords.end();
1644
28
    }
1645
28
  }
1646
1647
20
  bool isVerilogIdentifier(const FormatToken &Tok) const {
1648
20
    switch (Tok.Tok.getKind()) {
1649
0
    case tok::kw_case:
1650
0
    case tok::kw_class:
1651
0
    case tok::kw_const:
1652
0
    case tok::kw_continue:
1653
0
    case tok::kw_default:
1654
0
    case tok::kw_do:
1655
0
    case tok::kw_extern:
1656
0
    case tok::kw_else:
1657
0
    case tok::kw_enum:
1658
0
    case tok::kw_for:
1659
0
    case tok::kw_if:
1660
0
    case tok::kw_restrict:
1661
0
    case tok::kw_signed:
1662
0
    case tok::kw_static:
1663
0
    case tok::kw_struct:
1664
0
    case tok::kw_typedef:
1665
0
    case tok::kw_union:
1666
0
    case tok::kw_unsigned:
1667
0
    case tok::kw_virtual:
1668
0
    case tok::kw_while:
1669
0
      return false;
1670
20
    case tok::identifier:
1671
20
      return VerilogExtraKeywords.find(Tok.Tok.getIdentifierInfo()) ==
1672
20
             VerilogExtraKeywords.end();
1673
0
    default:
1674
      // getIdentifierInfo returns non-null for both identifiers and keywords.
1675
0
      return Tok.Tok.getIdentifierInfo() != nullptr;
1676
20
    }
1677
20
  }
1678
1679
  /// Returns whether \p Tok is a Verilog preprocessor directive.  This is
1680
  /// needed because macro expansions start with a backtick as well and they
1681
  /// need to be treated differently.
1682
86
  bool isVerilogPPDirective(const FormatToken &Tok) const {
1683
86
    auto Info = Tok.Tok.getIdentifierInfo();
1684
86
    if (!Info)
1685
0
      return false;
1686
86
    switch (Info->getPPKeywordID()) {
1687
14
    case tok::pp_define:
1688
16
    case tok::pp_else:
1689
18
    case tok::pp_endif:
1690
20
    case tok::pp_ifdef:
1691
22
    case tok::pp_ifndef:
1692
24
    case tok::pp_include:
1693
26
    case tok::pp_line:
1694
28
    case tok::pp_pragma:
1695
30
    case tok::pp_undef:
1696
30
      return true;
1697
56
    default:
1698
56
      return Tok.isOneOf(kw_begin_keywords, kw_celldefine,
1699
56
                         kw_default_decay_time, kw_default_nettype,
1700
56
                         kw_default_trireg_strength, kw_delay_mode_distributed,
1701
56
                         kw_delay_mode_path, kw_delay_mode_unit,
1702
56
                         kw_delay_mode_zero, kw_elsif, kw_end_keywords,
1703
56
                         kw_endcelldefine, kw_nounconnected_drive, kw_resetall,
1704
56
                         kw_timescale, kw_unconnected_drive, kw_undefineall);
1705
86
    }
1706
86
  }
1707
1708
  /// Returns whether \p Tok is a Verilog keyword that opens a block.
1709
109
  bool isVerilogBegin(const FormatToken &Tok) const {
1710
    // `table` is not included since it needs to be treated specially.
1711
109
    return !Tok.endsSequence(kw_fork, kw_disable) &&
1712
109
           Tok.isOneOf(kw_begin, kw_fork, kw_generate, kw_specify);
1713
109
  }
1714
1715
  /// Returns whether \p Tok is a Verilog keyword that closes a block.
1716
920
  bool isVerilogEnd(const FormatToken &Tok) const {
1717
920
    return !Tok.endsSequence(kw_join, kw_rand) &&
1718
920
           Tok.isOneOf(TT_MacroBlockEnd, kw_end, kw_endcase, kw_endclass,
1719
918
                       kw_endclocking, kw_endchecker, kw_endfunction,
1720
918
                       kw_endgenerate, kw_endgroup, kw_endinterface,
1721
918
                       kw_endmodule, kw_endpackage, kw_endprimitive,
1722
918
                       kw_endprogram, kw_endproperty, kw_endsequence,
1723
918
                       kw_endspecify, kw_endtable, kw_endtask, kw_join,
1724
918
                       kw_join_any, kw_join_none);
1725
920
  }
1726
1727
  /// Whether the token begins a block.
1728
13.6k
  bool isBlockBegin(const FormatToken &Tok, const FormatStyle &Style) const {
1729
13.6k
    return Tok.is(TT_MacroBlockBegin) ||
1730
13.6k
           (Style.isVerilog() ? 
isVerilogBegin(Tok)81
:
Tok.is(tok::l_brace)13.6k
);
1731
13.6k
  }
1732
1733
private:
1734
  /// The JavaScript keywords beyond the C++ keyword set.
1735
  std::unordered_set<IdentifierInfo *> JsExtraKeywords;
1736
1737
  /// The C# keywords beyond the C++ keyword set
1738
  std::unordered_set<IdentifierInfo *> CSharpExtraKeywords;
1739
1740
  /// The Verilog keywords beyond the C++ keyword set.
1741
  std::unordered_set<IdentifierInfo *> VerilogExtraKeywords;
1742
};
1743
1744
} // namespace format
1745
} // namespace clang
1746
1747
#endif