Coverage Report

Created: 2024-01-17 10:31

/src/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 <optional>
24
#include <unordered_set>
25
26
namespace clang {
27
namespace format {
28
29
#define LIST_TOKEN_TYPES                                                       \
30
0
  TYPE(ArrayInitializerLSquare)                                                \
31
0
  TYPE(ArraySubscriptLSquare)                                                  \
32
0
  TYPE(AttributeColon)                                                         \
33
0
  TYPE(AttributeLParen)                                                        \
34
0
  TYPE(AttributeMacro)                                                         \
35
0
  TYPE(AttributeRParen)                                                        \
36
0
  TYPE(AttributeSquare)                                                        \
37
0
  TYPE(BinaryOperator)                                                         \
38
0
  TYPE(BitFieldColon)                                                          \
39
0
  TYPE(BlockComment)                                                           \
40
0
  TYPE(BracedListLBrace)                                                       \
41
0
  /* The colon at the end of a case label. */                                  \
42
0
  TYPE(CaseLabelColon)                                                         \
43
0
  TYPE(CastRParen)                                                             \
44
0
  TYPE(ClassLBrace)                                                            \
45
0
  TYPE(ClassRBrace)                                                            \
46
0
  /* ternary ?: expression */                                                  \
47
0
  TYPE(ConditionalExpr)                                                        \
48
0
  /* the condition in an if statement */                                       \
49
0
  TYPE(ConditionLParen)                                                        \
50
0
  TYPE(ConflictAlternative)                                                    \
51
0
  TYPE(ConflictEnd)                                                            \
52
0
  TYPE(ConflictStart)                                                          \
53
0
  /* l_brace of if/for/while */                                                \
54
0
  TYPE(ControlStatementLBrace)                                                 \
55
0
  TYPE(ControlStatementRBrace)                                                 \
56
0
  TYPE(CppCastLParen)                                                          \
57
0
  TYPE(CSharpGenericTypeConstraint)                                            \
58
0
  TYPE(CSharpGenericTypeConstraintColon)                                       \
59
0
  TYPE(CSharpGenericTypeConstraintComma)                                       \
60
0
  TYPE(CSharpNamedArgumentColon)                                               \
61
0
  TYPE(CSharpNullable)                                                         \
62
0
  TYPE(CSharpNullConditionalLSquare)                                           \
63
0
  TYPE(CSharpStringLiteral)                                                    \
64
0
  TYPE(CtorInitializerColon)                                                   \
65
0
  TYPE(CtorInitializerComma)                                                   \
66
0
  TYPE(CtorDtorDeclName)                                                       \
67
0
  TYPE(DesignatedInitializerLSquare)                                           \
68
0
  TYPE(DesignatedInitializerPeriod)                                            \
69
0
  TYPE(DictLiteral)                                                            \
70
0
  TYPE(DoWhile)                                                                \
71
0
  TYPE(ElseLBrace)                                                             \
72
0
  TYPE(ElseRBrace)                                                             \
73
0
  TYPE(EnumLBrace)                                                             \
74
0
  TYPE(EnumRBrace)                                                             \
75
0
  TYPE(FatArrow)                                                               \
76
0
  TYPE(ForEachMacro)                                                           \
77
0
  TYPE(FunctionAnnotationRParen)                                               \
78
0
  TYPE(FunctionDeclarationName)                                                \
79
0
  TYPE(FunctionLBrace)                                                         \
80
0
  TYPE(FunctionLikeOrFreestandingMacro)                                        \
81
0
  TYPE(FunctionTypeLParen)                                                     \
82
0
  /* The colons as part of a C11 _Generic selection */                         \
83
0
  TYPE(GenericSelectionColon)                                                  \
84
0
  /* The colon at the end of a goto label. */                                  \
85
0
  TYPE(GotoLabelColon)                                                         \
86
0
  TYPE(IfMacro)                                                                \
87
0
  TYPE(ImplicitStringLiteral)                                                  \
88
0
  TYPE(InheritanceColon)                                                       \
89
0
  TYPE(InheritanceComma)                                                       \
90
0
  TYPE(InlineASMBrace)                                                         \
91
0
  TYPE(InlineASMColon)                                                         \
92
0
  TYPE(InlineASMSymbolicNameLSquare)                                           \
93
0
  TYPE(JavaAnnotation)                                                         \
94
0
  TYPE(JsAndAndEqual)                                                          \
95
0
  TYPE(JsComputedPropertyName)                                                 \
96
0
  TYPE(JsExponentiation)                                                       \
97
0
  TYPE(JsExponentiationEqual)                                                  \
98
0
  TYPE(JsPipePipeEqual)                                                        \
99
0
  TYPE(JsPrivateIdentifier)                                                    \
100
0
  TYPE(JsTypeColon)                                                            \
101
0
  TYPE(JsTypeOperator)                                                         \
102
0
  TYPE(JsTypeOptionalQuestion)                                                 \
103
0
  TYPE(LambdaLBrace)                                                           \
104
0
  TYPE(LambdaLSquare)                                                          \
105
0
  TYPE(LeadingJavaAnnotation)                                                  \
106
0
  TYPE(LineComment)                                                            \
107
0
  TYPE(MacroBlockBegin)                                                        \
108
0
  TYPE(MacroBlockEnd)                                                          \
109
0
  TYPE(ModulePartitionColon)                                                   \
110
0
  TYPE(NamespaceLBrace)                                                        \
111
0
  TYPE(NamespaceMacro)                                                         \
112
0
  TYPE(NamespaceRBrace)                                                        \
113
0
  TYPE(NonNullAssertion)                                                       \
114
0
  TYPE(NullCoalescingEqual)                                                    \
115
0
  TYPE(NullCoalescingOperator)                                                 \
116
0
  TYPE(NullPropagatingOperator)                                                \
117
0
  TYPE(ObjCBlockLBrace)                                                        \
118
0
  TYPE(ObjCBlockLParen)                                                        \
119
0
  TYPE(ObjCDecl)                                                               \
120
0
  TYPE(ObjCForIn)                                                              \
121
0
  TYPE(ObjCMethodExpr)                                                         \
122
0
  TYPE(ObjCMethodSpecifier)                                                    \
123
0
  TYPE(ObjCProperty)                                                           \
124
0
  TYPE(ObjCStringLiteral)                                                      \
125
0
  TYPE(OverloadedOperator)                                                     \
126
0
  TYPE(OverloadedOperatorLParen)                                               \
127
0
  TYPE(PointerOrReference)                                                     \
128
0
  TYPE(ProtoExtensionLSquare)                                                  \
129
0
  TYPE(PureVirtualSpecifier)                                                   \
130
0
  TYPE(RangeBasedForLoopColon)                                                 \
131
0
  TYPE(RecordLBrace)                                                           \
132
0
  TYPE(RecordRBrace)                                                           \
133
0
  TYPE(RegexLiteral)                                                           \
134
0
  TYPE(RequiresClause)                                                         \
135
0
  TYPE(RequiresClauseInARequiresExpression)                                    \
136
0
  TYPE(RequiresExpression)                                                     \
137
0
  TYPE(RequiresExpressionLBrace)                                               \
138
0
  TYPE(RequiresExpressionLParen)                                               \
139
0
  TYPE(SelectorName)                                                           \
140
0
  TYPE(StartOfName)                                                            \
141
0
  TYPE(StatementAttributeLikeMacro)                                            \
142
0
  TYPE(StatementMacro)                                                         \
143
0
  /* A string that is part of a string concatenation. For C#, JavaScript, and  \
144
0
   * Java, it is used for marking whether a string needs parentheses around it \
145
0
   * if it is to be split into parts joined by `+`. For Verilog, whether       \
146
0
   * braces need to be added to split it. Not used for other languages. */     \
147
0
  TYPE(StringInConcatenation)                                                  \
148
0
  TYPE(StructLBrace)                                                           \
149
0
  TYPE(StructRBrace)                                                           \
150
0
  TYPE(StructuredBindingLSquare)                                               \
151
0
  TYPE(TemplateCloser)                                                         \
152
0
  TYPE(TemplateOpener)                                                         \
153
0
  TYPE(TemplateString)                                                         \
154
0
  TYPE(TrailingAnnotation)                                                     \
155
0
  TYPE(TrailingReturnArrow)                                                    \
156
0
  TYPE(TrailingUnaryOperator)                                                  \
157
0
  TYPE(TypeDeclarationParen)                                                   \
158
0
  TYPE(TypeName)                                                               \
159
0
  TYPE(TypenameMacro)                                                          \
160
0
  TYPE(UnaryOperator)                                                          \
161
0
  TYPE(UnionLBrace)                                                            \
162
0
  TYPE(UnionRBrace)                                                            \
163
0
  TYPE(UntouchableMacroFunc)                                                   \
164
0
  /* Like in 'assign x = 0, y = 1;' . */                                       \
165
0
  TYPE(VerilogAssignComma)                                                     \
166
0
  /* like in begin : block */                                                  \
167
0
  TYPE(VerilogBlockLabelColon)                                                 \
168
0
  /* The square bracket for the dimension part of the type name.               \
169
0
   * In 'logic [1:0] x[1:0]', only the first '['. This way we can have space   \
170
0
   * before the first bracket but not the second. */                           \
171
0
  TYPE(VerilogDimensionedTypeName)                                             \
172
0
  /* list of port connections or parameters in a module instantiation */       \
173
0
  TYPE(VerilogInstancePortComma)                                               \
174
0
  TYPE(VerilogInstancePortLParen)                                              \
175
0
  /* A parenthesized list within which line breaks are inserted by the         \
176
0
   * formatter, for example the list of ports in a module header. */           \
177
0
  TYPE(VerilogMultiLineListLParen)                                             \
178
0
  /* for the base in a number literal, not including the quote */              \
179
0
  TYPE(VerilogNumberBase)                                                      \
180
0
  /* like `(strong1, pull0)` */                                                \
181
0
  TYPE(VerilogStrength)                                                        \
182
0
  /* Things inside the table in user-defined primitives. */                    \
183
0
  TYPE(VerilogTableItem)                                                       \
184
0
  /* those that separate ports of different types */                           \
185
0
  TYPE(VerilogTypeComma)                                                       \
186
0
  TYPE(Unknown)
187
188
/// Determines the semantic type of a syntactic token, e.g. whether "<" is a
189
/// template opener or binary operator.
190
enum TokenType : uint8_t {
191
#define TYPE(X) TT_##X,
192
  LIST_TOKEN_TYPES
193
#undef TYPE
194
      NUM_TOKEN_TYPES
195
};
196
197
/// Determines the name of a token type.
198
const char *getTokenTypeName(TokenType Type);
199
200
// Represents what type of block a set of braces open.
201
enum BraceBlockKind { BK_Unknown, BK_Block, BK_BracedInit };
202
203
// The packing kind of a function's parameters.
204
enum ParameterPackingKind { PPK_BinPacked, PPK_OnePerLine, PPK_Inconclusive };
205
206
enum FormatDecision { FD_Unformatted, FD_Continue, FD_Break };
207
208
/// Roles a token can take in a configured macro expansion.
209
enum MacroRole {
210
  /// The token was expanded from a macro argument when formatting the expanded
211
  /// token sequence.
212
  MR_ExpandedArg,
213
  /// The token is part of a macro argument that was previously formatted as
214
  /// expansion when formatting the unexpanded macro call.
215
  MR_UnexpandedArg,
216
  /// The token was expanded from a macro definition, and is not visible as part
217
  /// of the macro call.
218
  MR_Hidden,
219
};
220
221
struct FormatToken;
222
223
/// Contains information on the token's role in a macro expansion.
224
///
225
/// Given the following definitions:
226
/// A(X) = [ X ]
227
/// B(X) = < X >
228
/// C(X) = X
229
///
230
/// Consider the macro call:
231
/// A({B(C(C(x)))}) -> [{<x>}]
232
///
233
/// In this case, the tokens of the unexpanded macro call will have the
234
/// following relevant entries in their macro context (note that formatting
235
/// the unexpanded macro call happens *after* formatting the expanded macro
236
/// call):
237
///                   A( { B( C( C(x) ) ) } )
238
/// Role:             NN U NN NN NNUN N N U N  (N=None, U=UnexpandedArg)
239
///
240
///                   [  { <       x    > } ]
241
/// Role:             H  E H       E    H E H  (H=Hidden, E=ExpandedArg)
242
/// ExpandedFrom[0]:  A  A A       A    A A A
243
/// ExpandedFrom[1]:       B       B    B
244
/// ExpandedFrom[2]:               C
245
/// ExpandedFrom[3]:               C
246
/// StartOfExpansion: 1  0 1       2    0 0 0
247
/// EndOfExpansion:   0  0 0       2    1 0 1
248
struct MacroExpansion {
249
0
  MacroExpansion(MacroRole Role) : Role(Role) {}
250
251
  /// The token's role in the macro expansion.
252
  /// When formatting an expanded macro, all tokens that are part of macro
253
  /// arguments will be MR_ExpandedArg, while all tokens that are not visible in
254
  /// the macro call will be MR_Hidden.
255
  /// When formatting an unexpanded macro call, all tokens that are part of
256
  /// macro arguments will be MR_UnexpandedArg.
257
  MacroRole Role;
258
259
  /// The stack of macro call identifier tokens this token was expanded from.
260
  llvm::SmallVector<FormatToken *, 1> ExpandedFrom;
261
262
  /// The number of expansions of which this macro is the first entry.
263
  unsigned StartOfExpansion = 0;
264
265
  /// The number of currently open expansions in \c ExpandedFrom this macro is
266
  /// the last token in.
267
  unsigned EndOfExpansion = 0;
268
};
269
270
class TokenRole;
271
class AnnotatedLine;
272
273
/// A wrapper around a \c Token storing information about the
274
/// whitespace characters preceding it.
275
struct FormatToken {
276
  FormatToken()
277
      : HasUnescapedNewline(false), IsMultiline(false), IsFirst(false),
278
        MustBreakBefore(false), MustBreakBeforeFinalized(false),
279
        IsUnterminatedLiteral(false), CanBreakBefore(false),
280
        ClosesTemplateDeclaration(false), StartsBinaryExpression(false),
281
        EndsBinaryExpression(false), PartOfMultiVariableDeclStmt(false),
282
        ContinuesLineCommentSection(false), Finalized(false),
283
        ClosesRequiresClause(false), EndsCppAttributeGroup(false),
284
        BlockKind(BK_Unknown), Decision(FD_Unformatted),
285
        PackingKind(PPK_Inconclusive), TypeIsFinalized(false),
286
53.2M
        Type(TT_Unknown) {}
287
288
  /// The \c Token.
289
  Token Tok;
290
291
  /// The raw text of the token.
292
  ///
293
  /// Contains the raw token text without leading whitespace and without leading
294
  /// escaped newlines.
295
  StringRef TokenText;
296
297
  /// A token can have a special role that can carry extra information
298
  /// about the token's formatting.
299
  /// FIXME: Make FormatToken for parsing and AnnotatedToken two different
300
  /// classes and make this a unique_ptr in the AnnotatedToken class.
301
  std::shared_ptr<TokenRole> Role;
302
303
  /// The range of the whitespace immediately preceding the \c Token.
304
  SourceRange WhitespaceRange;
305
306
  /// Whether there is at least one unescaped newline before the \c
307
  /// Token.
308
  unsigned HasUnescapedNewline : 1;
309
310
  /// Whether the token text contains newlines (escaped or not).
311
  unsigned IsMultiline : 1;
312
313
  /// Indicates that this is the first token of the file.
314
  unsigned IsFirst : 1;
315
316
  /// Whether there must be a line break before this token.
317
  ///
318
  /// This happens for example when a preprocessor directive ended directly
319
  /// before the token.
320
  unsigned MustBreakBefore : 1;
321
322
  /// Whether MustBreakBefore is finalized during parsing and must not
323
  /// be reset between runs.
324
  unsigned MustBreakBeforeFinalized : 1;
325
326
  /// Set to \c true if this token is an unterminated literal.
327
  unsigned IsUnterminatedLiteral : 1;
328
329
  /// \c true if it is allowed to break before this token.
330
  unsigned CanBreakBefore : 1;
331
332
  /// \c true if this is the ">" of "template<..>".
333
  unsigned ClosesTemplateDeclaration : 1;
334
335
  /// \c true if this token starts a binary expression, i.e. has at least
336
  /// one fake l_paren with a precedence greater than prec::Unknown.
337
  unsigned StartsBinaryExpression : 1;
338
  /// \c true if this token ends a binary expression.
339
  unsigned EndsBinaryExpression : 1;
340
341
  /// Is this token part of a \c DeclStmt defining multiple variables?
342
  ///
343
  /// Only set if \c Type == \c TT_StartOfName.
344
  unsigned PartOfMultiVariableDeclStmt : 1;
345
346
  /// Does this line comment continue a line comment section?
347
  ///
348
  /// Only set to true if \c Type == \c TT_LineComment.
349
  unsigned ContinuesLineCommentSection : 1;
350
351
  /// If \c true, this token has been fully formatted (indented and
352
  /// potentially re-formatted inside), and we do not allow further formatting
353
  /// changes.
354
  unsigned Finalized : 1;
355
356
  /// \c true if this is the last token within requires clause.
357
  unsigned ClosesRequiresClause : 1;
358
359
  /// \c true if this token ends a group of C++ attributes.
360
  unsigned EndsCppAttributeGroup : 1;
361
362
private:
363
  /// Contains the kind of block if this token is a brace.
364
  unsigned BlockKind : 2;
365
366
public:
367
27.4M
  BraceBlockKind getBlockKind() const {
368
27.4M
    return static_cast<BraceBlockKind>(BlockKind);
369
27.4M
  }
370
12.1M
  void setBlockKind(BraceBlockKind BBK) {
371
12.1M
    BlockKind = BBK;
372
12.1M
    assert(getBlockKind() == BBK && "BraceBlockKind overflow!");
373
12.1M
  }
374
375
private:
376
  /// Stores the formatting decision for the token once it was made.
377
  unsigned Decision : 2;
378
379
public:
380
5.67M
  FormatDecision getDecision() const {
381
5.67M
    return static_cast<FormatDecision>(Decision);
382
5.67M
  }
383
1.48M
  void setDecision(FormatDecision D) {
384
1.48M
    Decision = D;
385
1.48M
    assert(getDecision() == D && "FormatDecision overflow!");
386
1.48M
  }
387
388
private:
389
  /// If this is an opening parenthesis, how are the parameters packed?
390
  unsigned PackingKind : 2;
391
392
public:
393
25.5M
  ParameterPackingKind getPackingKind() const {
394
25.5M
    return static_cast<ParameterPackingKind>(PackingKind);
395
25.5M
  }
396
144k
  void setPackingKind(ParameterPackingKind K) {
397
144k
    PackingKind = K;
398
144k
    assert(getPackingKind() == K && "ParameterPackingKind overflow!");
399
144k
  }
400
401
private:
402
  unsigned TypeIsFinalized : 1;
403
  TokenType Type;
404
405
public:
406
  /// Returns the token's type, e.g. whether "<" is a template opener or
407
  /// binary operator.
408
3.57G
  TokenType getType() const { return Type; }
409
65.5M
  void setType(TokenType T) {
410
    // If this token is a macro argument while formatting an unexpanded macro
411
    // call, we do not change its type any more - the type was deduced from
412
    // formatting the expanded macro stream already.
413
65.5M
    if (MacroCtx && MacroCtx->Role == MR_UnexpandedArg)
414
0
      return;
415
65.5M
    assert((!TypeIsFinalized || T == Type) &&
416
65.5M
           "Please use overwriteFixedType to change a fixed type.");
417
0
    Type = T;
418
65.5M
  }
419
  /// Sets the type and also the finalized flag. This prevents the type to be
420
  /// reset in TokenAnnotator::resetTokenMetadata(). If the type needs to be set
421
  /// to another one please use overwriteFixedType, or even better remove the
422
  /// need to reassign the type.
423
394k
  void setFinalizedType(TokenType T) {
424
394k
    if (MacroCtx && MacroCtx->Role == MR_UnexpandedArg)
425
0
      return;
426
394k
    Type = T;
427
394k
    TypeIsFinalized = true;
428
394k
  }
429
651
  void overwriteFixedType(TokenType T) {
430
651
    if (MacroCtx && MacroCtx->Role == MR_UnexpandedArg)
431
0
      return;
432
651
    TypeIsFinalized = false;
433
651
    setType(T);
434
651
  }
435
48.6M
  bool isTypeFinalized() const { return TypeIsFinalized; }
436
437
  /// Used to set an operator precedence explicitly.
438
  prec::Level ForcedPrecedence = prec::Unknown;
439
440
  /// The number of newlines immediately before the \c Token.
441
  ///
442
  /// This can be used to determine what the user wrote in the original code
443
  /// and thereby e.g. leave an empty line between two function definitions.
444
  unsigned NewlinesBefore = 0;
445
446
  /// The number of newlines immediately before the \c Token after formatting.
447
  ///
448
  /// This is used to avoid overlapping whitespace replacements when \c Newlines
449
  /// is recomputed for a finalized preprocessor branching directive.
450
  int Newlines = -1;
451
452
  /// The offset just past the last '\n' in this token's leading
453
  /// whitespace (relative to \c WhiteSpaceStart). 0 if there is no '\n'.
454
  unsigned LastNewlineOffset = 0;
455
456
  /// The width of the non-whitespace parts of the token (or its first
457
  /// line for multi-line tokens) in columns.
458
  /// We need this to correctly measure number of columns a token spans.
459
  unsigned ColumnWidth = 0;
460
461
  /// Contains the width in columns of the last line of a multi-line
462
  /// token.
463
  unsigned LastLineColumnWidth = 0;
464
465
  /// The number of spaces that should be inserted before this token.
466
  unsigned SpacesRequiredBefore = 0;
467
468
  /// Number of parameters, if this is "(", "[" or "<".
469
  unsigned ParameterCount = 0;
470
471
  /// Number of parameters that are nested blocks,
472
  /// if this is "(", "[" or "<".
473
  unsigned BlockParameterCount = 0;
474
475
  /// If this is a bracket ("<", "(", "[" or "{"), contains the kind of
476
  /// the surrounding bracket.
477
  tok::TokenKind ParentBracket = tok::unknown;
478
479
  /// The total length of the unwrapped line up to and including this
480
  /// token.
481
  unsigned TotalLength = 0;
482
483
  /// The original 0-based column of this token, including expanded tabs.
484
  /// The configured TabWidth is used as tab width.
485
  unsigned OriginalColumn = 0;
486
487
  /// The length of following tokens until the next natural split point,
488
  /// or the next token that can be broken.
489
  unsigned UnbreakableTailLength = 0;
490
491
  // FIXME: Come up with a 'cleaner' concept.
492
  /// The binding strength of a token. This is a combined value of
493
  /// operator precedence, parenthesis nesting, etc.
494
  unsigned BindingStrength = 0;
495
496
  /// The nesting level of this token, i.e. the number of surrounding (),
497
  /// [], {} or <>.
498
  unsigned NestingLevel = 0;
499
500
  /// The indent level of this token. Copied from the surrounding line.
501
  unsigned IndentLevel = 0;
502
503
  /// Penalty for inserting a line break before this token.
504
  unsigned SplitPenalty = 0;
505
506
  /// If this is the first ObjC selector name in an ObjC method
507
  /// definition or call, this contains the length of the longest name.
508
  ///
509
  /// This being set to 0 means that the selectors should not be colon-aligned,
510
  /// e.g. because several of them are block-type.
511
  unsigned LongestObjCSelectorName = 0;
512
513
  /// If this is the first ObjC selector name in an ObjC method
514
  /// definition or call, this contains the number of parts that the whole
515
  /// selector consist of.
516
  unsigned ObjCSelectorNameParts = 0;
517
518
  /// The 0-based index of the parameter/argument. For ObjC it is set
519
  /// for the selector name token.
520
  /// For now calculated only for ObjC.
521
  unsigned ParameterIndex = 0;
522
523
  /// Stores the number of required fake parentheses and the
524
  /// corresponding operator precedence.
525
  ///
526
  /// If multiple fake parentheses start at a token, this vector stores them in
527
  /// reverse order, i.e. inner fake parenthesis first.
528
  SmallVector<prec::Level, 4> FakeLParens;
529
  /// Insert this many fake ) after this token for correct indentation.
530
  unsigned FakeRParens = 0;
531
532
  /// If this is an operator (or "."/"->") in a sequence of operators
533
  /// with the same precedence, contains the 0-based operator index.
534
  unsigned OperatorIndex = 0;
535
536
  /// If this is an operator (or "."/"->") in a sequence of operators
537
  /// with the same precedence, points to the next operator.
538
  FormatToken *NextOperator = nullptr;
539
540
  /// If this is a bracket, this points to the matching one.
541
  FormatToken *MatchingParen = nullptr;
542
543
  /// The previous token in the unwrapped line.
544
  FormatToken *Previous = nullptr;
545
546
  /// The next token in the unwrapped line.
547
  FormatToken *Next = nullptr;
548
549
  /// The first token in set of column elements.
550
  bool StartsColumn = false;
551
552
  /// This notes the start of the line of an array initializer.
553
  bool ArrayInitializerLineStart = false;
554
555
  /// This starts an array initializer.
556
  bool IsArrayInitializer = false;
557
558
  /// Is optional and can be removed.
559
  bool Optional = false;
560
561
  /// Number of optional braces to be inserted after this token:
562
  ///   -1: a single left brace
563
  ///    0: no braces
564
  ///   >0: number of right braces
565
  int8_t BraceCount = 0;
566
567
  /// If this token starts a block, this contains all the unwrapped lines
568
  /// in it.
569
  SmallVector<AnnotatedLine *, 1> Children;
570
571
  // Contains all attributes related to how this token takes part
572
  // in a configured macro expansion.
573
  std::optional<MacroExpansion> MacroCtx;
574
575
  /// When macro expansion introduces nodes with children, those are marked as
576
  /// \c MacroParent.
577
  /// FIXME: The formatting code currently hard-codes the assumption that
578
  /// child nodes are introduced by blocks following an opening brace.
579
  /// This is deeply baked into the code and disentangling this will require
580
  /// signficant refactorings. \c MacroParent allows us to special-case the
581
  /// cases in which we treat parents as block-openers for now.
582
  bool MacroParent = false;
583
584
6.02G
  bool is(tok::TokenKind Kind) const { return Tok.is(Kind); }
585
3.40G
  bool is(TokenType TT) const { return getType() == TT; }
586
160M
  bool is(const IdentifierInfo *II) const {
587
160M
    return II && II == Tok.getIdentifierInfo();
588
160M
  }
589
140k
  bool is(tok::PPKeywordKind Kind) const {
590
140k
    return Tok.getIdentifierInfo() &&
591
140k
           Tok.getIdentifierInfo()->getPPKeywordID() == Kind;
592
140k
  }
593
14.1M
  bool is(BraceBlockKind BBK) const { return getBlockKind() == BBK; }
594
25.4M
  bool is(ParameterPackingKind PPK) const { return getPackingKind() == PPK; }
595
596
973M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
973M
    return is(K1) || is(K2);
598
973M
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType) const
Line
Count
Source
596
260M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
260M
    return is(K1) || is(K2);
598
260M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
596
529M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
529M
    return is(K1) || is(K2);
598
529M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
596
144M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
144M
    return is(K1) || is(K2);
598
144M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
596
31.2M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
31.2M
    return is(K1) || is(K2);
598
31.2M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Line
Count
Source
596
46.0k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
46.0k
    return is(K1) || is(K2);
598
46.0k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
596
3.97M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
3.97M
    return is(K1) || is(K2);
598
3.97M
  }
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*) const
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
596
2.87M
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
2.87M
    return is(K1) || is(K2);
598
2.87M
  }
bool clang::format::FormatToken::isOneOf<clang::tok::PPKeywordKind, clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind, clang::tok::PPKeywordKind) const
Line
Count
Source
596
11.3k
  template <typename A, typename B> bool isOneOf(A K1, B K2) const {
597
11.3k
    return is(K1) || is(K2);
598
11.3k
  }
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::format::BraceBlockKind, clang::format::TokenType>(clang::format::BraceBlockKind, clang::format::TokenType) const
599
  template <typename A, typename B, typename... Ts>
600
1.50G
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
1.50G
    return is(K1) || isOneOf(K2, Ks...);
602
1.50G
  }
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
600
68.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
68.8M
    return is(K1) || isOneOf(K2, Ks...);
602
68.8M
  }
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
600
252M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
252M
    return is(K1) || isOneOf(K2, Ks...);
602
252M
  }
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, 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::IdentifierInfo*, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType, clang::format::TokenType) const
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
29.6M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
29.6M
    return is(K1) || isOneOf(K2, Ks...);
602
29.6M
  }
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
600
30.4M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
30.4M
    return is(K1) || isOneOf(K2, Ks...);
602
30.4M
  }
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
600
111M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
111M
    return is(K1) || isOneOf(K2, Ks...);
602
111M
  }
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
600
2.65M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.65M
    return is(K1) || isOneOf(K2, Ks...);
602
2.65M
  }
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
600
2.92M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.92M
    return is(K1) || isOneOf(K2, Ks...);
602
2.92M
  }
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
600
7.31M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
7.31M
    return is(K1) || isOneOf(K2, Ks...);
602
7.31M
  }
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
600
8.97M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
8.97M
    return is(K1) || isOneOf(K2, Ks...);
602
8.97M
  }
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
600
9.26M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
9.26M
    return is(K1) || isOneOf(K2, Ks...);
602
9.26M
  }
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
600
99.0M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
99.0M
    return is(K1) || isOneOf(K2, Ks...);
602
99.0M
  }
Unexecuted instantiation: 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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
Unexecuted instantiation: 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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.63k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.63k
    return is(K1) || isOneOf(K2, Ks...);
602
4.63k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.08k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.08k
    return is(K1) || isOneOf(K2, Ks...);
602
4.08k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.08k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.08k
    return is(K1) || isOneOf(K2, Ks...);
602
4.08k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.08k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.08k
    return is(K1) || isOneOf(K2, Ks...);
602
4.08k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.08k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.08k
    return is(K1) || isOneOf(K2, Ks...);
602
4.08k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, 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
600
4.08k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4.08k
    return is(K1) || isOneOf(K2, Ks...);
602
4.08k
  }
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, 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
600
568k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
568k
    return is(K1) || isOneOf(K2, Ks...);
602
568k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
600
568k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
568k
    return is(K1) || isOneOf(K2, Ks...);
602
568k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
600
568k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
568k
    return is(K1) || isOneOf(K2, Ks...);
602
568k
  }
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, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
600
568k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
568k
    return is(K1) || isOneOf(K2, Ks...);
602
568k
  }
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
600
2.34M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.34M
    return is(K1) || isOneOf(K2, Ks...);
602
2.34M
  }
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
600
2.34M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.34M
    return is(K1) || isOneOf(K2, Ks...);
602
2.34M
  }
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
600
2.33M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.33M
    return is(K1) || isOneOf(K2, Ks...);
602
2.33M
  }
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
600
2.31M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.31M
    return is(K1) || isOneOf(K2, Ks...);
602
2.31M
  }
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
600
2.30M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.30M
    return is(K1) || isOneOf(K2, Ks...);
602
2.30M
  }
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
600
2.29M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.29M
    return is(K1) || isOneOf(K2, Ks...);
602
2.29M
  }
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
600
33.6M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
33.6M
    return is(K1) || isOneOf(K2, Ks...);
602
33.6M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
600
2.72M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.72M
    return is(K1) || isOneOf(K2, Ks...);
602
2.72M
  }
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
600
216
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
216
    return is(K1) || isOneOf(K2, Ks...);
602
216
  }
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
600
216
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
216
    return is(K1) || isOneOf(K2, Ks...);
602
216
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
390k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
390k
    return is(K1) || isOneOf(K2, Ks...);
602
390k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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::IdentifierInfo*, clang::IdentifierInfo*, 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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::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*) const
Unexecuted instantiation: 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::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, 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
Unexecuted instantiation: 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*, 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
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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*, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Unexecuted instantiation: 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::tok::TokenKind) const
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind) const
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
600
4
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
4
    return is(K1) || isOneOf(K2, Ks...);
602
4
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
47.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
47.8M
    return is(K1) || isOneOf(K2, Ks...);
602
47.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
24.8M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.8M
    return is(K1) || isOneOf(K2, Ks...);
602
24.8M
  }
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
600
571k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
571k
    return is(K1) || isOneOf(K2, Ks...);
602
571k
  }
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
600
638k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
638k
    return is(K1) || isOneOf(K2, Ks...);
602
638k
  }
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
600
944k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
944k
    return is(K1) || isOneOf(K2, Ks...);
602
944k
  }
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::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, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
600
564k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
564k
    return is(K1) || isOneOf(K2, Ks...);
602
564k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::format::TokenType, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
600
5.14M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
5.14M
    return is(K1) || isOneOf(K2, Ks...);
602
5.14M
  }
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
600
1.83M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
1.83M
    return is(K1) || isOneOf(K2, Ks...);
602
1.83M
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, 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) const
Line
Count
Source
600
52.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
52.8k
    return is(K1) || isOneOf(K2, Ks...);
602
52.8k
  }
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
600
63.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.6k
    return is(K1) || isOneOf(K2, Ks...);
602
63.6k
  }
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
600
63.6k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.6k
    return is(K1) || isOneOf(K2, Ks...);
602
63.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::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
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
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
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
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
600
5.10M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
5.10M
    return is(K1) || isOneOf(K2, Ks...);
602
5.10M
  }
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
600
24.7M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
24.7M
    return is(K1) || isOneOf(K2, Ks...);
602
24.7M
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
66.1k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
66.1k
    return is(K1) || isOneOf(K2, Ks...);
602
66.1k
  }
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
600
67.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
67.3k
    return is(K1) || isOneOf(K2, Ks...);
602
67.3k
  }
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
600
2.87M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.87M
    return is(K1) || isOneOf(K2, Ks...);
602
2.87M
  }
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
600
2.87M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.87M
    return is(K1) || isOneOf(K2, Ks...);
602
2.87M
  }
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
600
93.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
93.8k
    return is(K1) || isOneOf(K2, Ks...);
602
93.8k
  }
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
600
93.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
93.8k
    return is(K1) || isOneOf(K2, Ks...);
602
93.8k
  }
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
600
840
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
840
    return is(K1) || isOneOf(K2, Ks...);
602
840
  }
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
600
777
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
777
    return is(K1) || isOneOf(K2, Ks...);
602
777
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::format::TokenType>(clang::format::TokenType, clang::format::TokenType, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
600
11.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.3k
    return is(K1) || isOneOf(K2, Ks...);
602
11.3k
  }
bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::format::TokenType>(clang::format::TokenType, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
600
11.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.3k
    return is(K1) || isOneOf(K2, Ks...);
602
11.3k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::format::TokenType>(clang::IdentifierInfo*, clang::IdentifierInfo*, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
600
8.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
8.93k
    return is(K1) || isOneOf(K2, Ks...);
602
8.93k
  }
bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::format::TokenType>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::format::TokenType) const
Line
Count
Source
600
8.93k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
8.93k
    return is(K1) || isOneOf(K2, Ks...);
602
8.93k
  }
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
600
72.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
72.5k
    return is(K1) || isOneOf(K2, Ks...);
602
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
600
48.8k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
48.8k
    return is(K1) || isOneOf(K2, Ks...);
602
48.8k
  }
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
600
46.0k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
46.0k
    return is(K1) || isOneOf(K2, Ks...);
602
46.0k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
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
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
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
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
bool clang::format::FormatToken::isOneOf<clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::IdentifierInfo*) const
Line
Count
Source
600
63.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
63.3k
    return is(K1) || isOneOf(K2, Ks...);
602
63.3k
  }
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
600
50.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
50.4k
    return is(K1) || isOneOf(K2, Ks...);
602
50.4k
  }
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
600
50.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
50.3k
    return is(K1) || isOneOf(K2, Ks...);
602
50.3k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind, clang::tok::TokenKind) const
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
600
132k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
132k
    return is(K1) || isOneOf(K2, Ks...);
602
132k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
3.95M
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
3.95M
    return is(K1) || isOneOf(K2, Ks...);
602
3.95M
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
1.14k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
1.14k
    return is(K1) || isOneOf(K2, Ks...);
602
1.14k
  }
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
600
11.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.5k
    return is(K1) || isOneOf(K2, Ks...);
602
11.5k
  }
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
600
11.5k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.5k
    return is(K1) || isOneOf(K2, Ks...);
602
11.5k
  }
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
600
11.4k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.4k
    return is(K1) || isOneOf(K2, Ks...);
602
11.4k
  }
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
600
11.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.3k
    return is(K1) || isOneOf(K2, Ks...);
602
11.3k
  }
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
600
11.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.3k
    return is(K1) || isOneOf(K2, Ks...);
602
11.3k
  }
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
600
11.3k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
11.3k
    return is(K1) || isOneOf(K2, Ks...);
602
11.3k
  }
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
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
600
2.92k
  bool isOneOf(A K1, B K2, Ts... Ks) const {
601
2.92k
    return is(K1) || isOneOf(K2, Ks...);
602
2.92k
  }
Unexecuted instantiation: bool clang::format::FormatToken::isOneOf<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind, clang::tok::TokenKind) const
Unexecuted instantiation: 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
Unexecuted instantiation: 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
Unexecuted instantiation: 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
603
822M
  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
603
84.5M
  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
603
736M
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
Unexecuted instantiation: bool clang::format::FormatToken::isNot<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
bool clang::format::FormatToken::isNot<clang::format::BraceBlockKind>(clang::format::BraceBlockKind) const
Line
Count
Source
603
933k
  template <typename T> bool isNot(T Kind) const { return !is(Kind); }
Unexecuted instantiation: bool clang::format::FormatToken::isNot<clang::tok::PPKeywordKind>(clang::tok::PPKeywordKind) const
604
605
397k
  bool isIf(bool AllowConstexprMacro = true) const {
606
397k
    return is(tok::kw_if) || endsSequence(tok::kw_constexpr, tok::kw_if) ||
607
397k
           (endsSequence(tok::identifier, tok::kw_if) && AllowConstexprMacro);
608
397k
  }
609
610
11.6k
  bool closesScopeAfterBlock() const {
611
11.6k
    if (getBlockKind() == BK_Block)
612
0
      return true;
613
11.6k
    if (closesScope())
614
5.82k
      return Previous->closesScopeAfterBlock();
615
5.82k
    return false;
616
11.6k
  }
617
618
  /// \c true if this token starts a sequence with the given tokens in order,
619
  /// following the ``Next`` pointers, ignoring comments.
620
  template <typename A, typename... Ts>
621
45.5M
  bool startsSequence(A K1, Ts... Tokens) const {
622
45.5M
    return startsSequenceInternal(K1, Tokens...);
623
45.5M
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
621
34.9M
  bool startsSequence(A K1, Ts... Tokens) const {
622
34.9M
    return startsSequenceInternal(K1, Tokens...);
623
34.9M
  }
bool clang::format::FormatToken::startsSequence<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
621
6.89M
  bool startsSequence(A K1, Ts... Tokens) const {
622
6.89M
    return startsSequenceInternal(K1, Tokens...);
623
6.89M
  }
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
621
2.69M
  bool startsSequence(A K1, Ts... Tokens) const {
622
2.69M
    return startsSequenceInternal(K1, Tokens...);
623
2.69M
  }
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
621
157k
  bool startsSequence(A K1, Ts... Tokens) const {
622
157k
    return startsSequenceInternal(K1, Tokens...);
623
157k
  }
Unexecuted instantiation: bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Unexecuted instantiation: bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
bool clang::format::FormatToken::startsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
621
799k
  bool startsSequence(A K1, Ts... Tokens) const {
622
799k
    return startsSequenceInternal(K1, Tokens...);
623
799k
  }
Unexecuted instantiation: bool clang::format::FormatToken::startsSequence<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
Unexecuted instantiation: bool clang::format::FormatToken::startsSequence<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind) const
624
625
  /// \c true if this token ends a sequence with the given tokens in order,
626
  /// following the ``Previous`` pointers, ignoring comments.
627
  /// For example, given tokens [T1, T2, T3], the function returns true if
628
  /// 3 tokens ending at this (ignoring comments) are [T3, T2, T1]. In other
629
  /// words, the tokens passed to this function need to the reverse of the
630
  /// order the tokens appear in code.
631
  template <typename A, typename... Ts>
632
1.36M
  bool endsSequence(A K1, Ts... Tokens) const {
633
1.36M
    return endsSequenceInternal(K1, Tokens...);
634
1.36M
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
632
57.5k
  bool endsSequence(A K1, Ts... Tokens) const {
633
57.5k
    return endsSequenceInternal(K1, Tokens...);
634
57.5k
  }
bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
632
1.10M
  bool endsSequence(A K1, Ts... Tokens) const {
633
1.10M
    return endsSequenceInternal(K1, Tokens...);
634
1.10M
  }
Unexecuted instantiation: bool clang::format::FormatToken::endsSequence<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
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
632
194k
  bool endsSequence(A K1, Ts... Tokens) const {
633
194k
    return endsSequenceInternal(K1, Tokens...);
634
194k
  }
Unexecuted instantiation: bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Unexecuted instantiation: bool clang::format::FormatToken::endsSequence<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
bool clang::format::FormatToken::endsSequence<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
632
4.13k
  bool endsSequence(A K1, Ts... Tokens) const {
633
4.13k
    return endsSequenceInternal(K1, Tokens...);
634
4.13k
  }
bool clang::format::FormatToken::endsSequence<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
632
699
  bool endsSequence(A K1, Ts... Tokens) const {
633
699
    return endsSequenceInternal(K1, Tokens...);
634
699
  }
635
636
53.5M
  bool isStringLiteral() const { return tok::isStringLiteral(Tok.getKind()); }
637
638
8.66M
  bool isAttribute() const {
639
8.66M
    return isOneOf(tok::kw___attribute, tok::kw___declspec, TT_AttributeMacro);
640
8.66M
  }
641
642
569k
  bool isObjCAtKeyword(tok::ObjCKeywordKind Kind) const {
643
569k
    return Tok.isObjCAtKeyword(Kind);
644
569k
  }
645
646
1.43M
  bool isAccessSpecifier(bool ColonRequired = true) const {
647
1.43M
    if (!isOneOf(tok::kw_public, tok::kw_protected, tok::kw_private))
648
1.43M
      return false;
649
0
    if (!ColonRequired)
650
0
      return true;
651
0
    const auto NextNonComment = getNextNonComment();
652
0
    return NextNonComment && NextNonComment->is(tok::colon);
653
0
  }
654
655
363k
  bool canBePointerOrReferenceQualifier() const {
656
363k
    return isOneOf(tok::kw_const, tok::kw_restrict, tok::kw_volatile,
657
363k
                   tok::kw__Nonnull, tok::kw__Nullable,
658
363k
                   tok::kw__Null_unspecified, tok::kw___ptr32, tok::kw___ptr64,
659
363k
                   tok::kw___funcref) ||
660
363k
           isAttribute();
661
363k
  }
662
663
  /// Determine whether the token is a simple-type-specifier.
664
  [[nodiscard]] bool isSimpleTypeSpecifier() const;
665
666
  [[nodiscard]] bool isTypeOrIdentifier() const;
667
668
423k
  bool isObjCAccessSpecifier() const {
669
423k
    return is(tok::at) && Next &&
670
423k
           (Next->isObjCAtKeyword(tok::objc_public) ||
671
22
            Next->isObjCAtKeyword(tok::objc_protected) ||
672
22
            Next->isObjCAtKeyword(tok::objc_package) ||
673
22
            Next->isObjCAtKeyword(tok::objc_private));
674
423k
  }
675
676
  /// Returns whether \p Tok is ([{ or an opening < of a template or in
677
  /// protos.
678
61.9M
  bool opensScope() const {
679
61.9M
    if (is(TT_TemplateString) && TokenText.ends_with("${"))
680
0
      return true;
681
61.9M
    if (is(TT_DictLiteral) && is(tok::less))
682
0
      return true;
683
61.9M
    return isOneOf(tok::l_paren, tok::l_brace, tok::l_square,
684
61.9M
                   TT_TemplateOpener);
685
61.9M
  }
686
  /// Returns whether \p Tok is )]} or a closing > of a template or in
687
  /// protos.
688
35.9M
  bool closesScope() const {
689
35.9M
    if (is(TT_TemplateString) && TokenText.starts_with("}"))
690
0
      return true;
691
35.9M
    if (is(TT_DictLiteral) && is(tok::greater))
692
0
      return true;
693
35.9M
    return isOneOf(tok::r_paren, tok::r_brace, tok::r_square,
694
35.9M
                   TT_TemplateCloser);
695
35.9M
  }
696
697
  /// Returns \c true if this is a "." or "->" accessing a member.
698
48.4M
  bool isMemberAccess() const {
699
48.4M
    return isOneOf(tok::arrow, tok::period, tok::arrowstar) &&
700
48.4M
           !isOneOf(TT_DesignatedInitializerPeriod, TT_TrailingReturnArrow,
701
962k
                    TT_LeadingJavaAnnotation);
702
48.4M
  }
703
704
34.5M
  bool isPointerOrReference() const {
705
34.5M
    return isOneOf(tok::star, tok::amp, tok::ampamp);
706
34.5M
  }
707
708
330k
  bool isUnaryOperator() const {
709
330k
    switch (Tok.getKind()) {
710
96
    case tok::plus:
711
114
    case tok::plusplus:
712
3.13k
    case tok::minus:
713
4.16k
    case tok::minusminus:
714
20.4k
    case tok::exclaim:
715
20.4k
    case tok::tilde:
716
20.4k
    case tok::kw_sizeof:
717
20.4k
    case tok::kw_alignof:
718
20.4k
      return true;
719
309k
    default:
720
309k
      return false;
721
330k
    }
722
330k
  }
723
724
29.1M
  bool isBinaryOperator() const {
725
    // Comma is a binary operator, but does not behave as such wrt. formatting.
726
29.1M
    return getPrecedence() > prec::Comma;
727
29.1M
  }
728
729
45.7M
  bool isTrailingComment() const {
730
45.7M
    return is(tok::comment) &&
731
45.7M
           (is(TT_LineComment) || !Next || Next->NewlinesBefore > 0);
732
45.7M
  }
733
734
  /// Returns \c true if this is a keyword that can be used
735
  /// like a function call (e.g. sizeof, typeid, ...).
736
0
  bool isFunctionLikeKeyword() const {
737
0
    if (isAttribute())
738
0
      return true;
739
0
740
0
    return isOneOf(tok::kw_throw, tok::kw_typeid, tok::kw_return,
741
0
                   tok::kw_sizeof, tok::kw_alignof, tok::kw_alignas,
742
0
                   tok::kw_decltype, tok::kw_noexcept, tok::kw_static_assert,
743
0
                   tok::kw__Atomic,
744
0
#define TRANSFORM_TYPE_TRAIT_DEF(_, Trait) tok::kw___##Trait,
745
0
#include "clang/Basic/TransformTypeTraits.def"
746
0
                   tok::kw_requires);
747
0
  }
748
749
  /// Returns \c true if this is a string literal that's like a label,
750
  /// e.g. ends with "=" or ":".
751
402k
  bool isLabelString() const {
752
402k
    if (isNot(tok::string_literal))
753
392k
      return false;
754
9.76k
    StringRef Content = TokenText;
755
9.76k
    if (Content.starts_with("\"") || Content.starts_with("'"))
756
9.76k
      Content = Content.drop_front(1);
757
9.76k
    if (Content.ends_with("\"") || Content.ends_with("'"))
758
9.65k
      Content = Content.drop_back(1);
759
9.76k
    Content = Content.trim();
760
9.76k
    return Content.size() > 1 &&
761
9.76k
           (Content.back() == ':' || Content.back() == '=');
762
402k
  }
763
764
  /// Returns actual token start location without leading escaped
765
  /// newlines and whitespace.
766
  ///
767
  /// This can be different to Tok.getLocation(), which includes leading escaped
768
  /// newlines.
769
52.0M
  SourceLocation getStartOfNonWhitespace() const {
770
52.0M
    return WhitespaceRange.getEnd();
771
52.0M
  }
772
773
  /// Returns \c true if the range of whitespace immediately preceding the \c
774
  /// Token is not empty.
775
25.4M
  bool hasWhitespaceBefore() const {
776
25.4M
    return WhitespaceRange.getBegin() != WhitespaceRange.getEnd();
777
25.4M
  }
778
779
113M
  prec::Level getPrecedence() const {
780
113M
    if (ForcedPrecedence != prec::Unknown)
781
0
      return ForcedPrecedence;
782
113M
    return getBinOpPrecedence(Tok.getKind(), /*GreaterThanIsOperator=*/true,
783
113M
                              /*CPlusPlus11=*/true);
784
113M
  }
785
786
  /// Returns the previous token ignoring comments.
787
83.6M
  [[nodiscard]] FormatToken *getPreviousNonComment() const {
788
83.6M
    FormatToken *Tok = Previous;
789
83.8M
    while (Tok && Tok->is(tok::comment))
790
227k
      Tok = Tok->Previous;
791
83.6M
    return Tok;
792
83.6M
  }
793
794
  /// Returns the next token ignoring comments.
795
34.1M
  [[nodiscard]] FormatToken *getNextNonComment() const {
796
34.1M
    FormatToken *Tok = Next;
797
34.2M
    while (Tok && Tok->is(tok::comment))
798
138k
      Tok = Tok->Next;
799
34.1M
    return Tok;
800
34.1M
  }
801
802
  /// Returns \c true if this token ends a block indented initializer list.
803
  [[nodiscard]] bool isBlockIndentedInitRBrace(const FormatStyle &Style) const;
804
805
  /// Returns \c true if this tokens starts a block-type list, i.e. a
806
  /// list that should be indented with a block indent.
807
  [[nodiscard]] bool opensBlockOrBlockTypeList(const FormatStyle &Style) const;
808
809
  /// Returns whether the token is the left square bracket of a C++
810
  /// structured binding declaration.
811
746k
  bool isCppStructuredBinding(const FormatStyle &Style) const {
812
746k
    if (!Style.isCpp() || isNot(tok::l_square))
813
0
      return false;
814
746k
    const FormatToken *T = this;
815
746k
    do {
816
746k
      T = T->getPreviousNonComment();
817
746k
    } while (T && T->isOneOf(tok::kw_const, tok::kw_volatile, tok::amp,
818
742k
                             tok::ampamp));
819
746k
    return T && T->is(tok::kw_auto);
820
746k
  }
821
822
  /// Same as opensBlockOrBlockTypeList, but for the closing token.
823
244k
  bool closesBlockOrBlockTypeList(const FormatStyle &Style) const {
824
244k
    if (is(TT_TemplateString) && closesScope())
825
0
      return true;
826
244k
    return MatchingParen && MatchingParen->opensBlockOrBlockTypeList(Style);
827
244k
  }
828
829
  /// Return the actual namespace token, if this token starts a namespace
830
  /// block.
831
57.2k
  const FormatToken *getNamespaceToken() const {
832
57.2k
    const FormatToken *NamespaceTok = this;
833
57.2k
    if (is(tok::comment))
834
5
      NamespaceTok = NamespaceTok->getNextNonComment();
835
    // Detect "(inline|export)? namespace" in the beginning of a line.
836
57.2k
    if (NamespaceTok && NamespaceTok->isOneOf(tok::kw_inline, tok::kw_export))
837
0
      NamespaceTok = NamespaceTok->getNextNonComment();
838
57.2k
    return NamespaceTok &&
839
57.2k
                   NamespaceTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro)
840
57.2k
               ? NamespaceTok
841
57.2k
               : nullptr;
842
57.2k
  }
843
844
0
  void copyFrom(const FormatToken &Tok) { *this = Tok; }
845
846
private:
847
  // Only allow copying via the explicit copyFrom method.
848
  FormatToken(const FormatToken &) = delete;
849
0
  FormatToken &operator=(const FormatToken &) = default;
850
851
  template <typename A, typename... Ts>
852
3.64M
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
853
3.64M
    if (is(tok::comment) && Next)
854
84
      return Next->startsSequenceInternal(K1, Tokens...);
855
3.64M
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
856
3.64M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
852
2.69M
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
853
2.69M
    if (is(tok::comment) && Next)
854
78
      return Next->startsSequenceInternal(K1, Tokens...);
855
2.69M
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
856
2.69M
  }
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
852
157k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
853
157k
    if (is(tok::comment) && Next)
854
0
      return Next->startsSequenceInternal(K1, Tokens...);
855
157k
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
856
157k
  }
Unexecuted instantiation: bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*, clang::tok::TokenKind>(clang::IdentifierInfo*, clang::tok::TokenKind) const
Unexecuted instantiation: bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind>(clang::tok::TokenKind, clang::IdentifierInfo*, clang::tok::TokenKind) const
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
Line
Count
Source
852
799k
  bool startsSequenceInternal(A K1, Ts... Tokens) const {
853
799k
    if (is(tok::comment) && Next)
854
6
      return Next->startsSequenceInternal(K1, Tokens...);
855
799k
    return is(K1) && Next && Next->startsSequenceInternal(Tokens...);
856
799k
  }
Unexecuted instantiation: bool clang::format::FormatToken::startsSequenceInternal<clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind, clang::tok::TokenKind) const
857
858
42.4M
  template <typename A> bool startsSequenceInternal(A K1) const {
859
42.4M
    if (is(tok::comment) && Next)
860
1.82k
      return Next->startsSequenceInternal(K1);
861
42.4M
    return is(K1);
862
42.4M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
858
35.5M
  template <typename A> bool startsSequenceInternal(A K1) const {
859
35.5M
    if (is(tok::comment) && Next)
860
1.37k
      return Next->startsSequenceInternal(K1);
861
35.5M
    return is(K1);
862
35.5M
  }
bool clang::format::FormatToken::startsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
858
6.89M
  template <typename A> bool startsSequenceInternal(A K1) const {
859
6.89M
    if (is(tok::comment) && Next)
860
447
      return Next->startsSequenceInternal(K1);
861
6.89M
    return is(K1);
862
6.89M
  }
Unexecuted instantiation: bool clang::format::FormatToken::startsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
863
864
230k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
865
230k
    if (is(tok::comment) && Previous)
866
492
      return Previous->endsSequenceInternal(K1);
867
230k
    return is(K1);
868
230k
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind>(clang::tok::TokenKind) const
Line
Count
Source
864
226k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
865
226k
    if (is(tok::comment) && Previous)
866
492
      return Previous->endsSequenceInternal(K1);
867
226k
    return is(K1);
868
226k
  }
Unexecuted instantiation: bool clang::format::FormatToken::endsSequenceInternal<clang::IdentifierInfo*>(clang::IdentifierInfo*) const
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType>(clang::format::TokenType) const
Line
Count
Source
864
4.13k
  template <typename A, typename... Ts> bool endsSequenceInternal(A K1) const {
865
4.13k
    if (is(tok::comment) && Previous)
866
0
      return Previous->endsSequenceInternal(K1);
867
4.13k
    return is(K1);
868
4.13k
  }
869
870
  template <typename A, typename... Ts>
871
1.30M
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
872
1.30M
    if (is(tok::comment) && Previous)
873
603
      return Previous->endsSequenceInternal(K1, Tokens...);
874
1.30M
    return is(K1) && Previous && Previous->endsSequenceInternal(Tokens...);
875
1.30M
  }
bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind>(clang::tok::TokenKind, clang::tok::TokenKind) const
Line
Count
Source
871
1.10M
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
872
1.10M
    if (is(tok::comment) && Previous)
873
603
      return Previous->endsSequenceInternal(K1, Tokens...);
874
1.10M
    return is(K1) && Previous && Previous->endsSequenceInternal(Tokens...);
875
1.10M
  }
Unexecuted instantiation: bool clang::format::FormatToken::endsSequenceInternal<clang::IdentifierInfo*, clang::IdentifierInfo*>(clang::IdentifierInfo*, clang::IdentifierInfo*) const
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
871
194k
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
872
194k
    if (is(tok::comment) && Previous)
873
0
      return Previous->endsSequenceInternal(K1, Tokens...);
874
194k
    return is(K1) && Previous && Previous->endsSequenceInternal(Tokens...);
875
194k
  }
Unexecuted instantiation: bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::tok::TokenKind, clang::format::TokenType) const
Unexecuted instantiation: bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::format::TokenType>(clang::tok::TokenKind, clang::format::TokenType) const
Unexecuted instantiation: bool clang::format::FormatToken::endsSequenceInternal<clang::tok::TokenKind, clang::IdentifierInfo*>(clang::tok::TokenKind, clang::IdentifierInfo*) const
bool clang::format::FormatToken::endsSequenceInternal<clang::format::TokenType, clang::tok::TokenKind>(clang::format::TokenType, clang::tok::TokenKind) const
Line
Count
Source
871
699
  bool endsSequenceInternal(A K1, Ts... Tokens) const {
872
699
    if (is(tok::comment) && Previous)
873
0
      return Previous->endsSequenceInternal(K1, Tokens...);
874
699
    return is(K1) && Previous && Previous->endsSequenceInternal(Tokens...);
875
699
  }
876
};
877
878
class ContinuationIndenter;
879
struct LineState;
880
881
class TokenRole {
882
public:
883
83.8k
  TokenRole(const FormatStyle &Style) : Style(Style) {}
884
  virtual ~TokenRole();
885
886
  /// After the \c TokenAnnotator has finished annotating all the tokens,
887
  /// this function precomputes required information for formatting.
888
  virtual void precomputeFormattingInfos(const FormatToken *Token);
889
890
  /// Apply the special formatting that the given role demands.
891
  ///
892
  /// Assumes that the token having this role is already formatted.
893
  ///
894
  /// Continues formatting from \p State leaving indentation to \p Indenter and
895
  /// returns the total penalty that this formatting incurs.
896
  virtual unsigned formatFromToken(LineState &State,
897
                                   ContinuationIndenter *Indenter,
898
0
                                   bool DryRun) {
899
0
    return 0;
900
0
  }
901
902
  /// Same as \c formatFromToken, but assumes that the first token has
903
  /// already been set thereby deciding on the first line break.
904
  virtual unsigned formatAfterToken(LineState &State,
905
                                    ContinuationIndenter *Indenter,
906
0
                                    bool DryRun) {
907
0
    return 0;
908
0
  }
909
910
  /// Notifies the \c Role that a comma was found.
911
0
  virtual void CommaFound(const FormatToken *Token) {}
912
913
0
  virtual const FormatToken *lastComma() { return nullptr; }
914
915
protected:
916
  const FormatStyle &Style;
917
};
918
919
class CommaSeparatedList : public TokenRole {
920
public:
921
  CommaSeparatedList(const FormatStyle &Style)
922
83.8k
      : TokenRole(Style), HasNestedBracedList(false) {}
923
924
  void precomputeFormattingInfos(const FormatToken *Token) override;
925
926
  unsigned formatAfterToken(LineState &State, ContinuationIndenter *Indenter,
927
                            bool DryRun) override;
928
929
  unsigned formatFromToken(LineState &State, ContinuationIndenter *Indenter,
930
                           bool DryRun) override;
931
932
  /// Adds \p Token as the next comma to the \c CommaSeparated list.
933
591k
  void CommaFound(const FormatToken *Token) override {
934
591k
    Commas.push_back(Token);
935
591k
  }
936
937
4
  const FormatToken *lastComma() override {
938
4
    if (Commas.empty())
939
0
      return nullptr;
940
4
    return Commas.back();
941
4
  }
942
943
private:
944
  /// A struct that holds information on how to format a given list with
945
  /// a specific number of columns.
946
  struct ColumnFormat {
947
    /// The number of columns to use.
948
    unsigned Columns;
949
950
    /// The total width in characters.
951
    unsigned TotalWidth;
952
953
    /// The number of lines required for this format.
954
    unsigned LineCount;
955
956
    /// The size of each column in characters.
957
    SmallVector<unsigned, 8> ColumnSizes;
958
  };
959
960
  /// Calculate which \c ColumnFormat fits best into
961
  /// \p RemainingCharacters.
962
  const ColumnFormat *getColumnFormat(unsigned RemainingCharacters) const;
963
964
  /// The ordered \c FormatTokens making up the commas of this list.
965
  SmallVector<const FormatToken *, 8> Commas;
966
967
  /// The length of each of the list's items in characters including the
968
  /// trailing comma.
969
  SmallVector<unsigned, 8> ItemLengths;
970
971
  /// Precomputed formats that can be used for this list.
972
  SmallVector<ColumnFormat, 4> Formats;
973
974
  bool HasNestedBracedList;
975
};
976
977
/// Encapsulates keywords that are context sensitive or for languages not
978
/// properly supported by Clang's lexer.
979
struct AdditionalKeywords {
980
4.04k
  AdditionalKeywords(IdentifierTable &IdentTable) {
981
4.04k
    kw_final = &IdentTable.get("final");
982
4.04k
    kw_override = &IdentTable.get("override");
983
4.04k
    kw_in = &IdentTable.get("in");
984
4.04k
    kw_of = &IdentTable.get("of");
985
4.04k
    kw_CF_CLOSED_ENUM = &IdentTable.get("CF_CLOSED_ENUM");
986
4.04k
    kw_CF_ENUM = &IdentTable.get("CF_ENUM");
987
4.04k
    kw_CF_OPTIONS = &IdentTable.get("CF_OPTIONS");
988
4.04k
    kw_NS_CLOSED_ENUM = &IdentTable.get("NS_CLOSED_ENUM");
989
4.04k
    kw_NS_ENUM = &IdentTable.get("NS_ENUM");
990
4.04k
    kw_NS_ERROR_ENUM = &IdentTable.get("NS_ERROR_ENUM");
991
4.04k
    kw_NS_OPTIONS = &IdentTable.get("NS_OPTIONS");
992
993
4.04k
    kw_as = &IdentTable.get("as");
994
4.04k
    kw_async = &IdentTable.get("async");
995
4.04k
    kw_await = &IdentTable.get("await");
996
4.04k
    kw_declare = &IdentTable.get("declare");
997
4.04k
    kw_finally = &IdentTable.get("finally");
998
4.04k
    kw_from = &IdentTable.get("from");
999
4.04k
    kw_function = &IdentTable.get("function");
1000
4.04k
    kw_get = &IdentTable.get("get");
1001
4.04k
    kw_import = &IdentTable.get("import");
1002
4.04k
    kw_infer = &IdentTable.get("infer");
1003
4.04k
    kw_is = &IdentTable.get("is");
1004
4.04k
    kw_let = &IdentTable.get("let");
1005
4.04k
    kw_module = &IdentTable.get("module");
1006
4.04k
    kw_readonly = &IdentTable.get("readonly");
1007
4.04k
    kw_set = &IdentTable.get("set");
1008
4.04k
    kw_type = &IdentTable.get("type");
1009
4.04k
    kw_typeof = &IdentTable.get("typeof");
1010
4.04k
    kw_var = &IdentTable.get("var");
1011
4.04k
    kw_yield = &IdentTable.get("yield");
1012
1013
4.04k
    kw_abstract = &IdentTable.get("abstract");
1014
4.04k
    kw_assert = &IdentTable.get("assert");
1015
4.04k
    kw_extends = &IdentTable.get("extends");
1016
4.04k
    kw_implements = &IdentTable.get("implements");
1017
4.04k
    kw_instanceof = &IdentTable.get("instanceof");
1018
4.04k
    kw_interface = &IdentTable.get("interface");
1019
4.04k
    kw_native = &IdentTable.get("native");
1020
4.04k
    kw_package = &IdentTable.get("package");
1021
4.04k
    kw_synchronized = &IdentTable.get("synchronized");
1022
4.04k
    kw_throws = &IdentTable.get("throws");
1023
4.04k
    kw___except = &IdentTable.get("__except");
1024
4.04k
    kw___has_include = &IdentTable.get("__has_include");
1025
4.04k
    kw___has_include_next = &IdentTable.get("__has_include_next");
1026
1027
4.04k
    kw_mark = &IdentTable.get("mark");
1028
4.04k
    kw_region = &IdentTable.get("region");
1029
1030
4.04k
    kw_extend = &IdentTable.get("extend");
1031
4.04k
    kw_option = &IdentTable.get("option");
1032
4.04k
    kw_optional = &IdentTable.get("optional");
1033
4.04k
    kw_repeated = &IdentTable.get("repeated");
1034
4.04k
    kw_required = &IdentTable.get("required");
1035
4.04k
    kw_returns = &IdentTable.get("returns");
1036
1037
4.04k
    kw_signals = &IdentTable.get("signals");
1038
4.04k
    kw_qsignals = &IdentTable.get("Q_SIGNALS");
1039
4.04k
    kw_slots = &IdentTable.get("slots");
1040
4.04k
    kw_qslots = &IdentTable.get("Q_SLOTS");
1041
1042
    // For internal clang-format use.
1043
4.04k
    kw_internal_ident_after_define =
1044
4.04k
        &IdentTable.get("__CLANG_FORMAT_INTERNAL_IDENT_AFTER_DEFINE__");
1045
1046
    // C# keywords
1047
4.04k
    kw_dollar = &IdentTable.get("dollar");
1048
4.04k
    kw_base = &IdentTable.get("base");
1049
4.04k
    kw_byte = &IdentTable.get("byte");
1050
4.04k
    kw_checked = &IdentTable.get("checked");
1051
4.04k
    kw_decimal = &IdentTable.get("decimal");
1052
4.04k
    kw_delegate = &IdentTable.get("delegate");
1053
4.04k
    kw_event = &IdentTable.get("event");
1054
4.04k
    kw_fixed = &IdentTable.get("fixed");
1055
4.04k
    kw_foreach = &IdentTable.get("foreach");
1056
4.04k
    kw_init = &IdentTable.get("init");
1057
4.04k
    kw_implicit = &IdentTable.get("implicit");
1058
4.04k
    kw_internal = &IdentTable.get("internal");
1059
4.04k
    kw_lock = &IdentTable.get("lock");
1060
4.04k
    kw_null = &IdentTable.get("null");
1061
4.04k
    kw_object = &IdentTable.get("object");
1062
4.04k
    kw_out = &IdentTable.get("out");
1063
4.04k
    kw_params = &IdentTable.get("params");
1064
4.04k
    kw_ref = &IdentTable.get("ref");
1065
4.04k
    kw_string = &IdentTable.get("string");
1066
4.04k
    kw_stackalloc = &IdentTable.get("stackalloc");
1067
4.04k
    kw_sbyte = &IdentTable.get("sbyte");
1068
4.04k
    kw_sealed = &IdentTable.get("sealed");
1069
4.04k
    kw_uint = &IdentTable.get("uint");
1070
4.04k
    kw_ulong = &IdentTable.get("ulong");
1071
4.04k
    kw_unchecked = &IdentTable.get("unchecked");
1072
4.04k
    kw_unsafe = &IdentTable.get("unsafe");
1073
4.04k
    kw_ushort = &IdentTable.get("ushort");
1074
4.04k
    kw_when = &IdentTable.get("when");
1075
4.04k
    kw_where = &IdentTable.get("where");
1076
1077
    // Verilog keywords
1078
4.04k
    kw_always = &IdentTable.get("always");
1079
4.04k
    kw_always_comb = &IdentTable.get("always_comb");
1080
4.04k
    kw_always_ff = &IdentTable.get("always_ff");
1081
4.04k
    kw_always_latch = &IdentTable.get("always_latch");
1082
4.04k
    kw_assign = &IdentTable.get("assign");
1083
4.04k
    kw_assume = &IdentTable.get("assume");
1084
4.04k
    kw_automatic = &IdentTable.get("automatic");
1085
4.04k
    kw_before = &IdentTable.get("before");
1086
4.04k
    kw_begin = &IdentTable.get("begin");
1087
4.04k
    kw_begin_keywords = &IdentTable.get("begin_keywords");
1088
4.04k
    kw_bins = &IdentTable.get("bins");
1089
4.04k
    kw_binsof = &IdentTable.get("binsof");
1090
4.04k
    kw_casex = &IdentTable.get("casex");
1091
4.04k
    kw_casez = &IdentTable.get("casez");
1092
4.04k
    kw_celldefine = &IdentTable.get("celldefine");
1093
4.04k
    kw_checker = &IdentTable.get("checker");
1094
4.04k
    kw_clocking = &IdentTable.get("clocking");
1095
4.04k
    kw_constraint = &IdentTable.get("constraint");
1096
4.04k
    kw_cover = &IdentTable.get("cover");
1097
4.04k
    kw_covergroup = &IdentTable.get("covergroup");
1098
4.04k
    kw_coverpoint = &IdentTable.get("coverpoint");
1099
4.04k
    kw_default_decay_time = &IdentTable.get("default_decay_time");
1100
4.04k
    kw_default_nettype = &IdentTable.get("default_nettype");
1101
4.04k
    kw_default_trireg_strength = &IdentTable.get("default_trireg_strength");
1102
4.04k
    kw_delay_mode_distributed = &IdentTable.get("delay_mode_distributed");
1103
4.04k
    kw_delay_mode_path = &IdentTable.get("delay_mode_path");
1104
4.04k
    kw_delay_mode_unit = &IdentTable.get("delay_mode_unit");
1105
4.04k
    kw_delay_mode_zero = &IdentTable.get("delay_mode_zero");
1106
4.04k
    kw_disable = &IdentTable.get("disable");
1107
4.04k
    kw_dist = &IdentTable.get("dist");
1108
4.04k
    kw_edge = &IdentTable.get("edge");
1109
4.04k
    kw_elsif = &IdentTable.get("elsif");
1110
4.04k
    kw_end = &IdentTable.get("end");
1111
4.04k
    kw_end_keywords = &IdentTable.get("end_keywords");
1112
4.04k
    kw_endcase = &IdentTable.get("endcase");
1113
4.04k
    kw_endcelldefine = &IdentTable.get("endcelldefine");
1114
4.04k
    kw_endchecker = &IdentTable.get("endchecker");
1115
4.04k
    kw_endclass = &IdentTable.get("endclass");
1116
4.04k
    kw_endclocking = &IdentTable.get("endclocking");
1117
4.04k
    kw_endfunction = &IdentTable.get("endfunction");
1118
4.04k
    kw_endgenerate = &IdentTable.get("endgenerate");
1119
4.04k
    kw_endgroup = &IdentTable.get("endgroup");
1120
4.04k
    kw_endinterface = &IdentTable.get("endinterface");
1121
4.04k
    kw_endmodule = &IdentTable.get("endmodule");
1122
4.04k
    kw_endpackage = &IdentTable.get("endpackage");
1123
4.04k
    kw_endprimitive = &IdentTable.get("endprimitive");
1124
4.04k
    kw_endprogram = &IdentTable.get("endprogram");
1125
4.04k
    kw_endproperty = &IdentTable.get("endproperty");
1126
4.04k
    kw_endsequence = &IdentTable.get("endsequence");
1127
4.04k
    kw_endspecify = &IdentTable.get("endspecify");
1128
4.04k
    kw_endtable = &IdentTable.get("endtable");
1129
4.04k
    kw_endtask = &IdentTable.get("endtask");
1130
4.04k
    kw_forever = &IdentTable.get("forever");
1131
4.04k
    kw_fork = &IdentTable.get("fork");
1132
4.04k
    kw_generate = &IdentTable.get("generate");
1133
4.04k
    kw_highz0 = &IdentTable.get("highz0");
1134
4.04k
    kw_highz1 = &IdentTable.get("highz1");
1135
4.04k
    kw_iff = &IdentTable.get("iff");
1136
4.04k
    kw_ifnone = &IdentTable.get("ifnone");
1137
4.04k
    kw_ignore_bins = &IdentTable.get("ignore_bins");
1138
4.04k
    kw_illegal_bins = &IdentTable.get("illegal_bins");
1139
4.04k
    kw_initial = &IdentTable.get("initial");
1140
4.04k
    kw_inout = &IdentTable.get("inout");
1141
4.04k
    kw_input = &IdentTable.get("input");
1142
4.04k
    kw_inside = &IdentTable.get("inside");
1143
4.04k
    kw_interconnect = &IdentTable.get("interconnect");
1144
4.04k
    kw_intersect = &IdentTable.get("intersect");
1145
4.04k
    kw_join = &IdentTable.get("join");
1146
4.04k
    kw_join_any = &IdentTable.get("join_any");
1147
4.04k
    kw_join_none = &IdentTable.get("join_none");
1148
4.04k
    kw_large = &IdentTable.get("large");
1149
4.04k
    kw_local = &IdentTable.get("local");
1150
4.04k
    kw_localparam = &IdentTable.get("localparam");
1151
4.04k
    kw_macromodule = &IdentTable.get("macromodule");
1152
4.04k
    kw_matches = &IdentTable.get("matches");
1153
4.04k
    kw_medium = &IdentTable.get("medium");
1154
4.04k
    kw_negedge = &IdentTable.get("negedge");
1155
4.04k
    kw_nounconnected_drive = &IdentTable.get("nounconnected_drive");
1156
4.04k
    kw_output = &IdentTable.get("output");
1157
4.04k
    kw_packed = &IdentTable.get("packed");
1158
4.04k
    kw_parameter = &IdentTable.get("parameter");
1159
4.04k
    kw_posedge = &IdentTable.get("posedge");
1160
4.04k
    kw_primitive = &IdentTable.get("primitive");
1161
4.04k
    kw_priority = &IdentTable.get("priority");
1162
4.04k
    kw_program = &IdentTable.get("program");
1163
4.04k
    kw_property = &IdentTable.get("property");
1164
4.04k
    kw_pull0 = &IdentTable.get("pull0");
1165
4.04k
    kw_pull1 = &IdentTable.get("pull1");
1166
4.04k
    kw_pure = &IdentTable.get("pure");
1167
4.04k
    kw_rand = &IdentTable.get("rand");
1168
4.04k
    kw_randc = &IdentTable.get("randc");
1169
4.04k
    kw_randcase = &IdentTable.get("randcase");
1170
4.04k
    kw_randsequence = &IdentTable.get("randsequence");
1171
4.04k
    kw_repeat = &IdentTable.get("repeat");
1172
4.04k
    kw_resetall = &IdentTable.get("resetall");
1173
4.04k
    kw_sample = &IdentTable.get("sample");
1174
4.04k
    kw_scalared = &IdentTable.get("scalared");
1175
4.04k
    kw_sequence = &IdentTable.get("sequence");
1176
4.04k
    kw_small = &IdentTable.get("small");
1177
4.04k
    kw_soft = &IdentTable.get("soft");
1178
4.04k
    kw_solve = &IdentTable.get("solve");
1179
4.04k
    kw_specify = &IdentTable.get("specify");
1180
4.04k
    kw_specparam = &IdentTable.get("specparam");
1181
4.04k
    kw_strong0 = &IdentTable.get("strong0");
1182
4.04k
    kw_strong1 = &IdentTable.get("strong1");
1183
4.04k
    kw_supply0 = &IdentTable.get("supply0");
1184
4.04k
    kw_supply1 = &IdentTable.get("supply1");
1185
4.04k
    kw_table = &IdentTable.get("table");
1186
4.04k
    kw_tagged = &IdentTable.get("tagged");
1187
4.04k
    kw_task = &IdentTable.get("task");
1188
4.04k
    kw_timescale = &IdentTable.get("timescale");
1189
4.04k
    kw_tri = &IdentTable.get("tri");
1190
4.04k
    kw_tri0 = &IdentTable.get("tri0");
1191
4.04k
    kw_tri1 = &IdentTable.get("tri1");
1192
4.04k
    kw_triand = &IdentTable.get("triand");
1193
4.04k
    kw_trior = &IdentTable.get("trior");
1194
4.04k
    kw_trireg = &IdentTable.get("trireg");
1195
4.04k
    kw_unconnected_drive = &IdentTable.get("unconnected_drive");
1196
4.04k
    kw_undefineall = &IdentTable.get("undefineall");
1197
4.04k
    kw_unique = &IdentTable.get("unique");
1198
4.04k
    kw_unique0 = &IdentTable.get("unique0");
1199
4.04k
    kw_uwire = &IdentTable.get("uwire");
1200
4.04k
    kw_vectored = &IdentTable.get("vectored");
1201
4.04k
    kw_wand = &IdentTable.get("wand");
1202
4.04k
    kw_weak0 = &IdentTable.get("weak0");
1203
4.04k
    kw_weak1 = &IdentTable.get("weak1");
1204
4.04k
    kw_wildcard = &IdentTable.get("wildcard");
1205
4.04k
    kw_wire = &IdentTable.get("wire");
1206
4.04k
    kw_with = &IdentTable.get("with");
1207
4.04k
    kw_wor = &IdentTable.get("wor");
1208
1209
    // Symbols that are treated as keywords.
1210
4.04k
    kw_verilogHash = &IdentTable.get("#");
1211
4.04k
    kw_verilogHashHash = &IdentTable.get("##");
1212
4.04k
    kw_apostrophe = &IdentTable.get("\'");
1213
1214
    // TableGen keywords
1215
4.04k
    kw_bit = &IdentTable.get("bit");
1216
4.04k
    kw_bits = &IdentTable.get("bits");
1217
4.04k
    kw_code = &IdentTable.get("code");
1218
4.04k
    kw_dag = &IdentTable.get("dag");
1219
4.04k
    kw_def = &IdentTable.get("def");
1220
4.04k
    kw_defm = &IdentTable.get("defm");
1221
4.04k
    kw_defset = &IdentTable.get("defset");
1222
4.04k
    kw_defvar = &IdentTable.get("defvar");
1223
4.04k
    kw_dump = &IdentTable.get("dump");
1224
4.04k
    kw_include = &IdentTable.get("include");
1225
4.04k
    kw_list = &IdentTable.get("list");
1226
4.04k
    kw_multiclass = &IdentTable.get("multiclass");
1227
4.04k
    kw_then = &IdentTable.get("then");
1228
1229
    // Keep this at the end of the constructor to make sure everything here
1230
    // is
1231
    // already initialized.
1232
4.04k
    JsExtraKeywords = std::unordered_set<IdentifierInfo *>(
1233
4.04k
        {kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
1234
4.04k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_override,
1235
4.04k
         kw_readonly, kw_set, kw_type, kw_typeof, kw_var, kw_yield,
1236
         // Keywords from the Java section.
1237
4.04k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
1238
1239
4.04k
    CSharpExtraKeywords = std::unordered_set<IdentifierInfo *>(
1240
4.04k
        {kw_base, kw_byte, kw_checked, kw_decimal, kw_delegate, kw_event,
1241
4.04k
         kw_fixed, kw_foreach, kw_implicit, kw_in, kw_init, kw_interface,
1242
4.04k
         kw_internal, kw_is, kw_lock, kw_null, kw_object, kw_out, kw_override,
1243
4.04k
         kw_params, kw_readonly, kw_ref, kw_string, kw_stackalloc, kw_sbyte,
1244
4.04k
         kw_sealed, kw_uint, kw_ulong, kw_unchecked, kw_unsafe, kw_ushort,
1245
4.04k
         kw_when, kw_where,
1246
         // Keywords from the JavaScript section.
1247
4.04k
         kw_as, kw_async, kw_await, kw_declare, kw_finally, kw_from,
1248
4.04k
         kw_function, kw_get, kw_import, kw_is, kw_let, kw_module, kw_readonly,
1249
4.04k
         kw_set, kw_type, kw_typeof, kw_var, kw_yield,
1250
         // Keywords from the Java section.
1251
4.04k
         kw_abstract, kw_extends, kw_implements, kw_instanceof, kw_interface});
1252
1253
    // Some keywords are not included here because they don't need special
1254
    // treatment like `showcancelled` or they should be treated as identifiers
1255
    // like `int` and `logic`.
1256
4.04k
    VerilogExtraKeywords = std::unordered_set<IdentifierInfo *>(
1257
4.04k
        {kw_always,       kw_always_comb,
1258
4.04k
         kw_always_ff,    kw_always_latch,
1259
4.04k
         kw_assert,       kw_assign,
1260
4.04k
         kw_assume,       kw_automatic,
1261
4.04k
         kw_before,       kw_begin,
1262
4.04k
         kw_bins,         kw_binsof,
1263
4.04k
         kw_casex,        kw_casez,
1264
4.04k
         kw_celldefine,   kw_checker,
1265
4.04k
         kw_clocking,     kw_constraint,
1266
4.04k
         kw_cover,        kw_covergroup,
1267
4.04k
         kw_coverpoint,   kw_disable,
1268
4.04k
         kw_dist,         kw_edge,
1269
4.04k
         kw_end,          kw_endcase,
1270
4.04k
         kw_endchecker,   kw_endclass,
1271
4.04k
         kw_endclocking,  kw_endfunction,
1272
4.04k
         kw_endgenerate,  kw_endgroup,
1273
4.04k
         kw_endinterface, kw_endmodule,
1274
4.04k
         kw_endpackage,   kw_endprimitive,
1275
4.04k
         kw_endprogram,   kw_endproperty,
1276
4.04k
         kw_endsequence,  kw_endspecify,
1277
4.04k
         kw_endtable,     kw_endtask,
1278
4.04k
         kw_extends,      kw_final,
1279
4.04k
         kw_foreach,      kw_forever,
1280
4.04k
         kw_fork,         kw_function,
1281
4.04k
         kw_generate,     kw_highz0,
1282
4.04k
         kw_highz1,       kw_iff,
1283
4.04k
         kw_ifnone,       kw_ignore_bins,
1284
4.04k
         kw_illegal_bins, kw_implements,
1285
4.04k
         kw_import,       kw_initial,
1286
4.04k
         kw_inout,        kw_input,
1287
4.04k
         kw_inside,       kw_interconnect,
1288
4.04k
         kw_interface,    kw_intersect,
1289
4.04k
         kw_join,         kw_join_any,
1290
4.04k
         kw_join_none,    kw_large,
1291
4.04k
         kw_let,          kw_local,
1292
4.04k
         kw_localparam,   kw_macromodule,
1293
4.04k
         kw_matches,      kw_medium,
1294
4.04k
         kw_negedge,      kw_output,
1295
4.04k
         kw_package,      kw_packed,
1296
4.04k
         kw_parameter,    kw_posedge,
1297
4.04k
         kw_primitive,    kw_priority,
1298
4.04k
         kw_program,      kw_property,
1299
4.04k
         kw_pull0,        kw_pull1,
1300
4.04k
         kw_pure,         kw_rand,
1301
4.04k
         kw_randc,        kw_randcase,
1302
4.04k
         kw_randsequence, kw_ref,
1303
4.04k
         kw_repeat,       kw_sample,
1304
4.04k
         kw_scalared,     kw_sequence,
1305
4.04k
         kw_small,        kw_soft,
1306
4.04k
         kw_solve,        kw_specify,
1307
4.04k
         kw_specparam,    kw_strong0,
1308
4.04k
         kw_strong1,      kw_supply0,
1309
4.04k
         kw_supply1,      kw_table,
1310
4.04k
         kw_tagged,       kw_task,
1311
4.04k
         kw_tri,          kw_tri0,
1312
4.04k
         kw_tri1,         kw_triand,
1313
4.04k
         kw_trior,        kw_trireg,
1314
4.04k
         kw_unique,       kw_unique0,
1315
4.04k
         kw_uwire,        kw_var,
1316
4.04k
         kw_vectored,     kw_wand,
1317
4.04k
         kw_weak0,        kw_weak1,
1318
4.04k
         kw_wildcard,     kw_wire,
1319
4.04k
         kw_with,         kw_wor,
1320
4.04k
         kw_verilogHash,  kw_verilogHashHash});
1321
1322
4.04k
    TableGenExtraKeywords = std::unordered_set<IdentifierInfo *>({
1323
4.04k
        kw_assert,
1324
4.04k
        kw_bit,
1325
4.04k
        kw_bits,
1326
4.04k
        kw_code,
1327
4.04k
        kw_dag,
1328
4.04k
        kw_def,
1329
4.04k
        kw_defm,
1330
4.04k
        kw_defset,
1331
4.04k
        kw_defvar,
1332
4.04k
        kw_dump,
1333
4.04k
        kw_foreach,
1334
4.04k
        kw_in,
1335
4.04k
        kw_include,
1336
4.04k
        kw_let,
1337
4.04k
        kw_list,
1338
4.04k
        kw_multiclass,
1339
4.04k
        kw_string,
1340
4.04k
        kw_then,
1341
4.04k
    });
1342
4.04k
  }
1343
1344
  // Context sensitive keywords.
1345
  IdentifierInfo *kw_final;
1346
  IdentifierInfo *kw_override;
1347
  IdentifierInfo *kw_in;
1348
  IdentifierInfo *kw_of;
1349
  IdentifierInfo *kw_CF_CLOSED_ENUM;
1350
  IdentifierInfo *kw_CF_ENUM;
1351
  IdentifierInfo *kw_CF_OPTIONS;
1352
  IdentifierInfo *kw_NS_CLOSED_ENUM;
1353
  IdentifierInfo *kw_NS_ENUM;
1354
  IdentifierInfo *kw_NS_ERROR_ENUM;
1355
  IdentifierInfo *kw_NS_OPTIONS;
1356
  IdentifierInfo *kw___except;
1357
  IdentifierInfo *kw___has_include;
1358
  IdentifierInfo *kw___has_include_next;
1359
1360
  // JavaScript keywords.
1361
  IdentifierInfo *kw_as;
1362
  IdentifierInfo *kw_async;
1363
  IdentifierInfo *kw_await;
1364
  IdentifierInfo *kw_declare;
1365
  IdentifierInfo *kw_finally;
1366
  IdentifierInfo *kw_from;
1367
  IdentifierInfo *kw_function;
1368
  IdentifierInfo *kw_get;
1369
  IdentifierInfo *kw_import;
1370
  IdentifierInfo *kw_infer;
1371
  IdentifierInfo *kw_is;
1372
  IdentifierInfo *kw_let;
1373
  IdentifierInfo *kw_module;
1374
  IdentifierInfo *kw_readonly;
1375
  IdentifierInfo *kw_set;
1376
  IdentifierInfo *kw_type;
1377
  IdentifierInfo *kw_typeof;
1378
  IdentifierInfo *kw_var;
1379
  IdentifierInfo *kw_yield;
1380
1381
  // Java keywords.
1382
  IdentifierInfo *kw_abstract;
1383
  IdentifierInfo *kw_assert;
1384
  IdentifierInfo *kw_extends;
1385
  IdentifierInfo *kw_implements;
1386
  IdentifierInfo *kw_instanceof;
1387
  IdentifierInfo *kw_interface;
1388
  IdentifierInfo *kw_native;
1389
  IdentifierInfo *kw_package;
1390
  IdentifierInfo *kw_synchronized;
1391
  IdentifierInfo *kw_throws;
1392
1393
  // Pragma keywords.
1394
  IdentifierInfo *kw_mark;
1395
  IdentifierInfo *kw_region;
1396
1397
  // Proto keywords.
1398
  IdentifierInfo *kw_extend;
1399
  IdentifierInfo *kw_option;
1400
  IdentifierInfo *kw_optional;
1401
  IdentifierInfo *kw_repeated;
1402
  IdentifierInfo *kw_required;
1403
  IdentifierInfo *kw_returns;
1404
1405
  // QT keywords.
1406
  IdentifierInfo *kw_signals;
1407
  IdentifierInfo *kw_qsignals;
1408
  IdentifierInfo *kw_slots;
1409
  IdentifierInfo *kw_qslots;
1410
1411
  // For internal use by clang-format.
1412
  IdentifierInfo *kw_internal_ident_after_define;
1413
1414
  // C# keywords
1415
  IdentifierInfo *kw_dollar;
1416
  IdentifierInfo *kw_base;
1417
  IdentifierInfo *kw_byte;
1418
  IdentifierInfo *kw_checked;
1419
  IdentifierInfo *kw_decimal;
1420
  IdentifierInfo *kw_delegate;
1421
  IdentifierInfo *kw_event;
1422
  IdentifierInfo *kw_fixed;
1423
  IdentifierInfo *kw_foreach;
1424
  IdentifierInfo *kw_implicit;
1425
  IdentifierInfo *kw_init;
1426
  IdentifierInfo *kw_internal;
1427
1428
  IdentifierInfo *kw_lock;
1429
  IdentifierInfo *kw_null;
1430
  IdentifierInfo *kw_object;
1431
  IdentifierInfo *kw_out;
1432
1433
  IdentifierInfo *kw_params;
1434
1435
  IdentifierInfo *kw_ref;
1436
  IdentifierInfo *kw_string;
1437
  IdentifierInfo *kw_stackalloc;
1438
  IdentifierInfo *kw_sbyte;
1439
  IdentifierInfo *kw_sealed;
1440
  IdentifierInfo *kw_uint;
1441
  IdentifierInfo *kw_ulong;
1442
  IdentifierInfo *kw_unchecked;
1443
  IdentifierInfo *kw_unsafe;
1444
  IdentifierInfo *kw_ushort;
1445
  IdentifierInfo *kw_when;
1446
  IdentifierInfo *kw_where;
1447
1448
  // Verilog keywords
1449
  IdentifierInfo *kw_always;
1450
  IdentifierInfo *kw_always_comb;
1451
  IdentifierInfo *kw_always_ff;
1452
  IdentifierInfo *kw_always_latch;
1453
  IdentifierInfo *kw_assign;
1454
  IdentifierInfo *kw_assume;
1455
  IdentifierInfo *kw_automatic;
1456
  IdentifierInfo *kw_before;
1457
  IdentifierInfo *kw_begin;
1458
  IdentifierInfo *kw_begin_keywords;
1459
  IdentifierInfo *kw_bins;
1460
  IdentifierInfo *kw_binsof;
1461
  IdentifierInfo *kw_casex;
1462
  IdentifierInfo *kw_casez;
1463
  IdentifierInfo *kw_celldefine;
1464
  IdentifierInfo *kw_checker;
1465
  IdentifierInfo *kw_clocking;
1466
  IdentifierInfo *kw_constraint;
1467
  IdentifierInfo *kw_cover;
1468
  IdentifierInfo *kw_covergroup;
1469
  IdentifierInfo *kw_coverpoint;
1470
  IdentifierInfo *kw_default_decay_time;
1471
  IdentifierInfo *kw_default_nettype;
1472
  IdentifierInfo *kw_default_trireg_strength;
1473
  IdentifierInfo *kw_delay_mode_distributed;
1474
  IdentifierInfo *kw_delay_mode_path;
1475
  IdentifierInfo *kw_delay_mode_unit;
1476
  IdentifierInfo *kw_delay_mode_zero;
1477
  IdentifierInfo *kw_disable;
1478
  IdentifierInfo *kw_dist;
1479
  IdentifierInfo *kw_elsif;
1480
  IdentifierInfo *kw_edge;
1481
  IdentifierInfo *kw_end;
1482
  IdentifierInfo *kw_end_keywords;
1483
  IdentifierInfo *kw_endcase;
1484
  IdentifierInfo *kw_endcelldefine;
1485
  IdentifierInfo *kw_endchecker;
1486
  IdentifierInfo *kw_endclass;
1487
  IdentifierInfo *kw_endclocking;
1488
  IdentifierInfo *kw_endfunction;
1489
  IdentifierInfo *kw_endgenerate;
1490
  IdentifierInfo *kw_endgroup;
1491
  IdentifierInfo *kw_endinterface;
1492
  IdentifierInfo *kw_endmodule;
1493
  IdentifierInfo *kw_endpackage;
1494
  IdentifierInfo *kw_endprimitive;
1495
  IdentifierInfo *kw_endprogram;
1496
  IdentifierInfo *kw_endproperty;
1497
  IdentifierInfo *kw_endsequence;
1498
  IdentifierInfo *kw_endspecify;
1499
  IdentifierInfo *kw_endtable;
1500
  IdentifierInfo *kw_endtask;
1501
  IdentifierInfo *kw_forever;
1502
  IdentifierInfo *kw_fork;
1503
  IdentifierInfo *kw_generate;
1504
  IdentifierInfo *kw_highz0;
1505
  IdentifierInfo *kw_highz1;
1506
  IdentifierInfo *kw_iff;
1507
  IdentifierInfo *kw_ifnone;
1508
  IdentifierInfo *kw_ignore_bins;
1509
  IdentifierInfo *kw_illegal_bins;
1510
  IdentifierInfo *kw_initial;
1511
  IdentifierInfo *kw_inout;
1512
  IdentifierInfo *kw_input;
1513
  IdentifierInfo *kw_inside;
1514
  IdentifierInfo *kw_interconnect;
1515
  IdentifierInfo *kw_intersect;
1516
  IdentifierInfo *kw_join;
1517
  IdentifierInfo *kw_join_any;
1518
  IdentifierInfo *kw_join_none;
1519
  IdentifierInfo *kw_large;
1520
  IdentifierInfo *kw_local;
1521
  IdentifierInfo *kw_localparam;
1522
  IdentifierInfo *kw_macromodule;
1523
  IdentifierInfo *kw_matches;
1524
  IdentifierInfo *kw_medium;
1525
  IdentifierInfo *kw_negedge;
1526
  IdentifierInfo *kw_nounconnected_drive;
1527
  IdentifierInfo *kw_output;
1528
  IdentifierInfo *kw_packed;
1529
  IdentifierInfo *kw_parameter;
1530
  IdentifierInfo *kw_posedge;
1531
  IdentifierInfo *kw_primitive;
1532
  IdentifierInfo *kw_priority;
1533
  IdentifierInfo *kw_program;
1534
  IdentifierInfo *kw_property;
1535
  IdentifierInfo *kw_pull0;
1536
  IdentifierInfo *kw_pull1;
1537
  IdentifierInfo *kw_pure;
1538
  IdentifierInfo *kw_rand;
1539
  IdentifierInfo *kw_randc;
1540
  IdentifierInfo *kw_randcase;
1541
  IdentifierInfo *kw_randsequence;
1542
  IdentifierInfo *kw_repeat;
1543
  IdentifierInfo *kw_resetall;
1544
  IdentifierInfo *kw_sample;
1545
  IdentifierInfo *kw_scalared;
1546
  IdentifierInfo *kw_sequence;
1547
  IdentifierInfo *kw_small;
1548
  IdentifierInfo *kw_soft;
1549
  IdentifierInfo *kw_solve;
1550
  IdentifierInfo *kw_specify;
1551
  IdentifierInfo *kw_specparam;
1552
  IdentifierInfo *kw_strong0;
1553
  IdentifierInfo *kw_strong1;
1554
  IdentifierInfo *kw_supply0;
1555
  IdentifierInfo *kw_supply1;
1556
  IdentifierInfo *kw_table;
1557
  IdentifierInfo *kw_tagged;
1558
  IdentifierInfo *kw_task;
1559
  IdentifierInfo *kw_timescale;
1560
  IdentifierInfo *kw_tri0;
1561
  IdentifierInfo *kw_tri1;
1562
  IdentifierInfo *kw_tri;
1563
  IdentifierInfo *kw_triand;
1564
  IdentifierInfo *kw_trior;
1565
  IdentifierInfo *kw_trireg;
1566
  IdentifierInfo *kw_unconnected_drive;
1567
  IdentifierInfo *kw_undefineall;
1568
  IdentifierInfo *kw_unique;
1569
  IdentifierInfo *kw_unique0;
1570
  IdentifierInfo *kw_uwire;
1571
  IdentifierInfo *kw_vectored;
1572
  IdentifierInfo *kw_wand;
1573
  IdentifierInfo *kw_weak0;
1574
  IdentifierInfo *kw_weak1;
1575
  IdentifierInfo *kw_wildcard;
1576
  IdentifierInfo *kw_wire;
1577
  IdentifierInfo *kw_with;
1578
  IdentifierInfo *kw_wor;
1579
1580
  // Workaround for hashes and backticks in Verilog.
1581
  IdentifierInfo *kw_verilogHash;
1582
  IdentifierInfo *kw_verilogHashHash;
1583
1584
  // Symbols in Verilog that don't exist in C++.
1585
  IdentifierInfo *kw_apostrophe;
1586
1587
  // TableGen keywords
1588
  IdentifierInfo *kw_bit;
1589
  IdentifierInfo *kw_bits;
1590
  IdentifierInfo *kw_code;
1591
  IdentifierInfo *kw_dag;
1592
  IdentifierInfo *kw_def;
1593
  IdentifierInfo *kw_defm;
1594
  IdentifierInfo *kw_defset;
1595
  IdentifierInfo *kw_defvar;
1596
  IdentifierInfo *kw_dump;
1597
  IdentifierInfo *kw_include;
1598
  IdentifierInfo *kw_list;
1599
  IdentifierInfo *kw_multiclass;
1600
  IdentifierInfo *kw_then;
1601
1602
  /// Returns \c true if \p Tok is a keyword or an identifier.
1603
18.6M
  bool isWordLike(const FormatToken &Tok) const {
1604
    // getIdentifierinfo returns non-null for keywords as well as identifiers.
1605
18.6M
    return Tok.Tok.getIdentifierInfo() &&
1606
18.6M
           !Tok.isOneOf(kw_verilogHash, kw_verilogHashHash, kw_apostrophe);
1607
18.6M
  }
1608
1609
  /// Returns \c true if \p Tok is a true JavaScript identifier, returns
1610
  /// \c false if it is a keyword or a pseudo keyword.
1611
  /// If \c AcceptIdentifierName is true, returns true not only for keywords,
1612
  // but also for IdentifierName tokens (aka pseudo-keywords), such as
1613
  // ``yield``.
1614
  bool IsJavaScriptIdentifier(const FormatToken &Tok,
1615
0
                              bool AcceptIdentifierName = true) const {
1616
    // Based on the list of JavaScript & TypeScript keywords here:
1617
    // https://github.com/microsoft/TypeScript/blob/main/src/compiler/scanner.ts#L74
1618
0
    switch (Tok.Tok.getKind()) {
1619
0
    case tok::kw_break:
1620
0
    case tok::kw_case:
1621
0
    case tok::kw_catch:
1622
0
    case tok::kw_class:
1623
0
    case tok::kw_continue:
1624
0
    case tok::kw_const:
1625
0
    case tok::kw_default:
1626
0
    case tok::kw_delete:
1627
0
    case tok::kw_do:
1628
0
    case tok::kw_else:
1629
0
    case tok::kw_enum:
1630
0
    case tok::kw_export:
1631
0
    case tok::kw_false:
1632
0
    case tok::kw_for:
1633
0
    case tok::kw_if:
1634
0
    case tok::kw_import:
1635
0
    case tok::kw_module:
1636
0
    case tok::kw_new:
1637
0
    case tok::kw_private:
1638
0
    case tok::kw_protected:
1639
0
    case tok::kw_public:
1640
0
    case tok::kw_return:
1641
0
    case tok::kw_static:
1642
0
    case tok::kw_switch:
1643
0
    case tok::kw_this:
1644
0
    case tok::kw_throw:
1645
0
    case tok::kw_true:
1646
0
    case tok::kw_try:
1647
0
    case tok::kw_typeof:
1648
0
    case tok::kw_void:
1649
0
    case tok::kw_while:
1650
      // These are JS keywords that are lexed by LLVM/clang as keywords.
1651
0
      return false;
1652
0
    case tok::identifier: {
1653
      // For identifiers, make sure they are true identifiers, excluding the
1654
      // JavaScript pseudo-keywords (not lexed by LLVM/clang as keywords).
1655
0
      bool IsPseudoKeyword =
1656
0
          JsExtraKeywords.find(Tok.Tok.getIdentifierInfo()) !=
1657
0
          JsExtraKeywords.end();
1658
0
      return AcceptIdentifierName || !IsPseudoKeyword;
1659
0
    }
1660
0
    default:
1661
      // Other keywords are handled in the switch below, to avoid problems due
1662
      // to duplicate case labels when using the #include trick.
1663
0
      break;
1664
0
    }
1665
1666
0
    switch (Tok.Tok.getKind()) {
1667
      // Handle C++ keywords not included above: these are all JS identifiers.
1668
0
#define KEYWORD(X, Y) case tok::kw_##X:
1669
0
#include "clang/Basic/TokenKinds.def"
1670
      // #undef KEYWORD is not needed -- it's #undef-ed at the end of
1671
      // TokenKinds.def
1672
0
      return true;
1673
0
    default:
1674
      // All other tokens (punctuation etc) are not JS identifiers.
1675
0
      return false;
1676
0
    }
1677
0
  }
1678
1679
  /// Returns \c true if \p Tok is a C# keyword, returns
1680
  /// \c false if it is a anything else.
1681
0
  bool isCSharpKeyword(const FormatToken &Tok) const {
1682
0
    switch (Tok.Tok.getKind()) {
1683
0
    case tok::kw_bool:
1684
0
    case tok::kw_break:
1685
0
    case tok::kw_case:
1686
0
    case tok::kw_catch:
1687
0
    case tok::kw_char:
1688
0
    case tok::kw_class:
1689
0
    case tok::kw_const:
1690
0
    case tok::kw_continue:
1691
0
    case tok::kw_default:
1692
0
    case tok::kw_do:
1693
0
    case tok::kw_double:
1694
0
    case tok::kw_else:
1695
0
    case tok::kw_enum:
1696
0
    case tok::kw_explicit:
1697
0
    case tok::kw_extern:
1698
0
    case tok::kw_false:
1699
0
    case tok::kw_float:
1700
0
    case tok::kw_for:
1701
0
    case tok::kw_goto:
1702
0
    case tok::kw_if:
1703
0
    case tok::kw_int:
1704
0
    case tok::kw_long:
1705
0
    case tok::kw_namespace:
1706
0
    case tok::kw_new:
1707
0
    case tok::kw_operator:
1708
0
    case tok::kw_private:
1709
0
    case tok::kw_protected:
1710
0
    case tok::kw_public:
1711
0
    case tok::kw_return:
1712
0
    case tok::kw_short:
1713
0
    case tok::kw_sizeof:
1714
0
    case tok::kw_static:
1715
0
    case tok::kw_struct:
1716
0
    case tok::kw_switch:
1717
0
    case tok::kw_this:
1718
0
    case tok::kw_throw:
1719
0
    case tok::kw_true:
1720
0
    case tok::kw_try:
1721
0
    case tok::kw_typeof:
1722
0
    case tok::kw_using:
1723
0
    case tok::kw_virtual:
1724
0
    case tok::kw_void:
1725
0
    case tok::kw_volatile:
1726
0
    case tok::kw_while:
1727
0
      return true;
1728
0
    default:
1729
0
      return Tok.is(tok::identifier) &&
1730
0
             CSharpExtraKeywords.find(Tok.Tok.getIdentifierInfo()) ==
1731
0
                 CSharpExtraKeywords.end();
1732
0
    }
1733
0
  }
1734
1735
0
  bool isVerilogWordOperator(const FormatToken &Tok) const {
1736
0
    return Tok.isOneOf(kw_before, kw_intersect, kw_dist, kw_iff, kw_inside,
1737
0
                       kw_with);
1738
0
  }
1739
1740
0
  bool isVerilogIdentifier(const FormatToken &Tok) const {
1741
0
    switch (Tok.Tok.getKind()) {
1742
0
    case tok::kw_case:
1743
0
    case tok::kw_class:
1744
0
    case tok::kw_const:
1745
0
    case tok::kw_continue:
1746
0
    case tok::kw_default:
1747
0
    case tok::kw_do:
1748
0
    case tok::kw_extern:
1749
0
    case tok::kw_else:
1750
0
    case tok::kw_enum:
1751
0
    case tok::kw_for:
1752
0
    case tok::kw_if:
1753
0
    case tok::kw_restrict:
1754
0
    case tok::kw_signed:
1755
0
    case tok::kw_static:
1756
0
    case tok::kw_struct:
1757
0
    case tok::kw_typedef:
1758
0
    case tok::kw_union:
1759
0
    case tok::kw_unsigned:
1760
0
    case tok::kw_virtual:
1761
0
    case tok::kw_while:
1762
0
      return false;
1763
0
    case tok::identifier:
1764
0
      return isWordLike(Tok) &&
1765
0
             VerilogExtraKeywords.find(Tok.Tok.getIdentifierInfo()) ==
1766
0
                 VerilogExtraKeywords.end();
1767
0
    default:
1768
      // getIdentifierInfo returns non-null for both identifiers and keywords.
1769
0
      return Tok.Tok.getIdentifierInfo();
1770
0
    }
1771
0
  }
1772
1773
  /// Returns whether \p Tok is a Verilog preprocessor directive.  This is
1774
  /// needed because macro expansions start with a backtick as well and they
1775
  /// need to be treated differently.
1776
0
  bool isVerilogPPDirective(const FormatToken &Tok) const {
1777
0
    auto Info = Tok.Tok.getIdentifierInfo();
1778
0
    if (!Info)
1779
0
      return false;
1780
0
    switch (Info->getPPKeywordID()) {
1781
0
    case tok::pp_define:
1782
0
    case tok::pp_else:
1783
0
    case tok::pp_endif:
1784
0
    case tok::pp_ifdef:
1785
0
    case tok::pp_ifndef:
1786
0
    case tok::pp_include:
1787
0
    case tok::pp_line:
1788
0
    case tok::pp_pragma:
1789
0
    case tok::pp_undef:
1790
0
      return true;
1791
0
    default:
1792
0
      return Tok.isOneOf(kw_begin_keywords, kw_celldefine,
1793
0
                         kw_default_decay_time, kw_default_nettype,
1794
0
                         kw_default_trireg_strength, kw_delay_mode_distributed,
1795
0
                         kw_delay_mode_path, kw_delay_mode_unit,
1796
0
                         kw_delay_mode_zero, kw_elsif, kw_end_keywords,
1797
0
                         kw_endcelldefine, kw_nounconnected_drive, kw_resetall,
1798
0
                         kw_timescale, kw_unconnected_drive, kw_undefineall);
1799
0
    }
1800
0
  }
1801
1802
  /// Returns whether \p Tok is a Verilog keyword that opens a block.
1803
0
  bool isVerilogBegin(const FormatToken &Tok) const {
1804
    // `table` is not included since it needs to be treated specially.
1805
0
    return !Tok.endsSequence(kw_fork, kw_disable) &&
1806
0
           Tok.isOneOf(kw_begin, kw_fork, kw_generate, kw_specify);
1807
0
  }
1808
1809
  /// Returns whether \p Tok is a Verilog keyword that closes a block.
1810
0
  bool isVerilogEnd(const FormatToken &Tok) const {
1811
0
    return !Tok.endsSequence(kw_join, kw_rand) &&
1812
0
           Tok.isOneOf(TT_MacroBlockEnd, kw_end, kw_endcase, kw_endclass,
1813
0
                       kw_endclocking, kw_endchecker, kw_endfunction,
1814
0
                       kw_endgenerate, kw_endgroup, kw_endinterface,
1815
0
                       kw_endmodule, kw_endpackage, kw_endprimitive,
1816
0
                       kw_endprogram, kw_endproperty, kw_endsequence,
1817
0
                       kw_endspecify, kw_endtable, kw_endtask, kw_join,
1818
0
                       kw_join_any, kw_join_none);
1819
0
  }
1820
1821
  /// Returns whether \p Tok is a Verilog keyword that opens a module, etc.
1822
0
  bool isVerilogHierarchy(const FormatToken &Tok) const {
1823
0
    if (Tok.endsSequence(kw_function, kw_with))
1824
0
      return false;
1825
0
    if (Tok.is(kw_property)) {
1826
0
      const FormatToken *Prev = Tok.getPreviousNonComment();
1827
0
      return !(Prev &&
1828
0
               Prev->isOneOf(tok::kw_restrict, kw_assert, kw_assume, kw_cover));
1829
0
    }
1830
0
    return Tok.isOneOf(tok::kw_case, tok::kw_class, kw_function, kw_module,
1831
0
                       kw_interface, kw_package, kw_casex, kw_casez, kw_checker,
1832
0
                       kw_clocking, kw_covergroup, kw_macromodule, kw_primitive,
1833
0
                       kw_program, kw_property, kw_randcase, kw_randsequence,
1834
0
                       kw_task);
1835
0
  }
1836
1837
0
  bool isVerilogEndOfLabel(const FormatToken &Tok) const {
1838
0
    const FormatToken *Next = Tok.getNextNonComment();
1839
    // In Verilog the colon in a default label is optional.
1840
0
    return Tok.is(TT_CaseLabelColon) ||
1841
0
           (Tok.is(tok::kw_default) &&
1842
0
            !(Next && Next->isOneOf(tok::colon, tok::semi, kw_clocking, kw_iff,
1843
0
                                    kw_input, kw_output, kw_sequence)));
1844
0
  }
1845
1846
  /// Returns whether \p Tok is a Verilog keyword that starts a
1847
  /// structured procedure like 'always'.
1848
0
  bool isVerilogStructuredProcedure(const FormatToken &Tok) const {
1849
0
    return Tok.isOneOf(kw_always, kw_always_comb, kw_always_ff, kw_always_latch,
1850
0
                       kw_final, kw_forever, kw_initial);
1851
0
  }
1852
1853
0
  bool isVerilogQualifier(const FormatToken &Tok) const {
1854
0
    switch (Tok.Tok.getKind()) {
1855
0
    case tok::kw_extern:
1856
0
    case tok::kw_signed:
1857
0
    case tok::kw_static:
1858
0
    case tok::kw_unsigned:
1859
0
    case tok::kw_virtual:
1860
0
      return true;
1861
0
    case tok::identifier:
1862
0
      return Tok.isOneOf(
1863
0
          kw_let, kw_var, kw_ref, kw_automatic, kw_bins, kw_coverpoint,
1864
0
          kw_ignore_bins, kw_illegal_bins, kw_inout, kw_input, kw_interconnect,
1865
0
          kw_local, kw_localparam, kw_output, kw_parameter, kw_pure, kw_rand,
1866
0
          kw_randc, kw_scalared, kw_specparam, kw_tri, kw_tri0, kw_tri1,
1867
0
          kw_triand, kw_trior, kw_trireg, kw_uwire, kw_vectored, kw_wand,
1868
0
          kw_wildcard, kw_wire, kw_wor);
1869
0
    default:
1870
0
      return false;
1871
0
    }
1872
0
  }
1873
1874
0
  bool isTableGenDefinition(const FormatToken &Tok) const {
1875
0
    return Tok.isOneOf(kw_def, kw_defm, kw_defset, kw_defvar, kw_multiclass,
1876
0
                       kw_let, tok::kw_class);
1877
0
  }
1878
1879
0
  bool isTableGenKeyword(const FormatToken &Tok) const {
1880
0
    switch (Tok.Tok.getKind()) {
1881
0
    case tok::kw_class:
1882
0
    case tok::kw_else:
1883
0
    case tok::kw_false:
1884
0
    case tok::kw_if:
1885
0
    case tok::kw_int:
1886
0
    case tok::kw_true:
1887
0
      return true;
1888
0
    default:
1889
0
      return Tok.is(tok::identifier) &&
1890
0
             TableGenExtraKeywords.find(Tok.Tok.getIdentifierInfo()) !=
1891
0
                 TableGenExtraKeywords.end();
1892
0
    }
1893
0
  }
1894
1895
private:
1896
  /// The JavaScript keywords beyond the C++ keyword set.
1897
  std::unordered_set<IdentifierInfo *> JsExtraKeywords;
1898
1899
  /// The C# keywords beyond the C++ keyword set
1900
  std::unordered_set<IdentifierInfo *> CSharpExtraKeywords;
1901
1902
  /// The Verilog keywords beyond the C++ keyword set.
1903
  std::unordered_set<IdentifierInfo *> VerilogExtraKeywords;
1904
1905
  /// The TableGen keywords beyond the C++ keyword set.
1906
  std::unordered_set<IdentifierInfo *> TableGenExtraKeywords;
1907
};
1908
1909
206k
inline bool isLineComment(const FormatToken &FormatTok) {
1910
206k
  return FormatTok.is(tok::comment) && !FormatTok.TokenText.starts_with("/*");
1911
206k
}
1912
1913
// Checks if \p FormatTok is a line comment that continues the line comment
1914
// \p Previous. The original column of \p MinColumnToken is used to determine
1915
// whether \p FormatTok is indented enough to the right to continue \p Previous.
1916
inline bool continuesLineComment(const FormatToken &FormatTok,
1917
                                 const FormatToken *Previous,
1918
306k
                                 const FormatToken *MinColumnToken) {
1919
306k
  if (!Previous || !MinColumnToken)
1920
218k
    return false;
1921
87.4k
  unsigned MinContinueColumn =
1922
87.4k
      MinColumnToken->OriginalColumn + (isLineComment(*MinColumnToken) ? 0 : 1);
1923
87.4k
  return isLineComment(FormatTok) && FormatTok.NewlinesBefore == 1 &&
1924
87.4k
         isLineComment(*Previous) &&
1925
87.4k
         FormatTok.OriginalColumn >= MinContinueColumn;
1926
306k
}
1927
1928
} // namespace format
1929
} // namespace clang
1930
1931
#endif