Coverage Report

Created: 2022-01-25 06:29

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