Coverage Report

Created: 2021-09-21 08:58

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