[clang-format] Add ClassHeadName to help annotating StartOfName (#124… · llvm/llvm-project@6d3b034 (original) (raw)
`@@ -479,11 +479,13 @@ TEST_F(TokenAnnotatorTest, UnderstandsUsesOfPlusAndMinus) {
`
479
479
`TEST_F(TokenAnnotatorTest, UnderstandsClasses) {
`
480
480
`auto Tokens = annotate("class C {};");
`
481
481
`ASSERT_EQ(Tokens.size(), 6u) << Tokens;
`
``
482
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
482
483
`EXPECT_TOKEN(Tokens[2], tok::l_brace, TT_ClassLBrace);
`
483
484
`EXPECT_TOKEN(Tokens[3], tok::r_brace, TT_ClassRBrace);
`
484
485
``
485
486
` Tokens = annotate("const class C {} c;");
`
486
487
`ASSERT_EQ(Tokens.size(), 8u) << Tokens;
`
``
488
`+
EXPECT_TOKEN(Tokens[2], tok::identifier, TT_ClassHeadName);
`
487
489
`EXPECT_TOKEN(Tokens[3], tok::l_brace, TT_ClassLBrace);
`
488
490
`EXPECT_TOKEN(Tokens[4], tok::r_brace, TT_ClassRBrace);
`
489
491
``
`@@ -494,41 +496,48 @@ TEST_F(TokenAnnotatorTest, UnderstandsClasses) {
`
494
496
``
495
497
` Tokens = annotate("class [[deprecated("")]] C { int i; };");
`
496
498
`ASSERT_EQ(Tokens.size(), 17u) << Tokens;
`
``
499
`+
EXPECT_TOKEN(Tokens[9], tok::identifier, TT_ClassHeadName);
`
497
500
`EXPECT_TOKEN(Tokens[10], tok::l_brace, TT_ClassLBrace);
`
498
501
`EXPECT_TOKEN(Tokens[14], tok::r_brace, TT_ClassRBrace);
`
499
502
`}
`
500
503
``
501
504
`TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
`
502
505
`auto Tokens = annotate("struct S {};");
`
503
506
`ASSERT_EQ(Tokens.size(), 6u) << Tokens;
`
``
507
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
504
508
`EXPECT_TOKEN(Tokens[2], tok::l_brace, TT_StructLBrace);
`
505
509
`EXPECT_TOKEN(Tokens[3], tok::r_brace, TT_StructRBrace);
`
506
510
``
507
511
` Tokens = annotate("struct macro(a) S {};");
`
508
512
`ASSERT_EQ(Tokens.size(), 10u) << Tokens;
`
``
513
`+
EXPECT_TOKEN(Tokens[5], tok::identifier, TT_ClassHeadName);
`
509
514
`EXPECT_TOKEN(Tokens[6], tok::l_brace, TT_StructLBrace);
`
510
515
`EXPECT_TOKEN(Tokens[7], tok::r_brace, TT_StructRBrace);
`
511
516
``
512
517
` Tokens = annotate("struct EXPORT_MACRO [[nodiscard]] C { int i; };");
`
513
518
`ASSERT_EQ(Tokens.size(), 15u) << Tokens;
`
``
519
`+
EXPECT_TOKEN(Tokens[7], tok::identifier, TT_ClassHeadName);
`
514
520
`EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_StructLBrace);
`
515
521
`EXPECT_TOKEN(Tokens[12], tok::r_brace, TT_StructRBrace);
`
516
522
``
517
523
` Tokens = annotate("struct [[deprecated]] [[nodiscard]] C { int i; };");
`
518
524
`ASSERT_EQ(Tokens.size(), 19u) << Tokens;
`
``
525
`+
EXPECT_TOKEN(Tokens[11], tok::identifier, TT_ClassHeadName);
`
519
526
`EXPECT_TOKEN(Tokens[12], tok::l_brace, TT_StructLBrace);
`
520
527
`EXPECT_TOKEN(Tokens[16], tok::r_brace, TT_StructRBrace);
`
521
528
``
522
529
` Tokens = annotate("struct macro(a) S {\n"
`
523
530
`" void f(T &t);\n"
`
524
531
`"};");
`
525
532
`ASSERT_EQ(Tokens.size(), 18u) << Tokens;
`
``
533
`+
EXPECT_TOKEN(Tokens[5], tok::identifier, TT_ClassHeadName);
`
526
534
`EXPECT_TOKEN(Tokens[6], tok::l_brace, TT_StructLBrace);
`
527
535
`EXPECT_TOKEN(Tokens[11], tok::amp, TT_PointerOrReference);
`
528
536
`EXPECT_TOKEN(Tokens[15], tok::r_brace, TT_StructRBrace);
`
529
537
``
530
538
` Tokens = annotate("template struct S<const T[N]> {};");
`
531
539
`ASSERT_EQ(Tokens.size(), 18u) << Tokens;
`
``
540
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_ClassHeadName);
`
532
541
`EXPECT_TOKEN(Tokens[7], tok::less, TT_TemplateOpener);
`
533
542
`EXPECT_TOKEN(Tokens[10], tok::l_square, TT_ArraySubscriptLSquare);
`
534
543
`EXPECT_TOKEN(Tokens[13], tok::greater, TT_TemplateCloser);
`
`@@ -537,6 +546,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
`
537
546
``
538
547
` Tokens = annotate("template struct S<T const[N]> {};");
`
539
548
`ASSERT_EQ(Tokens.size(), 18u) << Tokens;
`
``
549
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_ClassHeadName);
`
540
550
`EXPECT_TOKEN(Tokens[7], tok::less, TT_TemplateOpener);
`
541
551
`EXPECT_TOKEN(Tokens[10], tok::l_square, TT_ArraySubscriptLSquare);
`
542
552
`EXPECT_TOKEN(Tokens[13], tok::greater, TT_TemplateCloser);
`
`@@ -547,6 +557,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
`
547
557
`" void f(T const (&a)[n]);\n"
`
548
558
`"};");
`
549
559
`ASSERT_EQ(Tokens.size(), 35u) << Tokens;
`
``
560
`+
EXPECT_TOKEN(Tokens[9], tok::identifier, TT_ClassHeadName);
`
550
561
`EXPECT_TOKEN(Tokens[10], tok::less, TT_TemplateOpener);
`
551
562
`EXPECT_TOKEN(Tokens[13], tok::l_square, TT_ArraySubscriptLSquare);
`
552
563
`EXPECT_TOKEN(Tokens[16], tok::greater, TT_TemplateCloser);
`
`@@ -558,12 +569,24 @@ TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
`
558
569
``
559
570
` Tokens = annotate("template <typename T, enum E e> struct S {};");
`
560
571
`ASSERT_EQ(Tokens.size(), 15u) << Tokens;
`
``
572
`+
EXPECT_TOKEN(Tokens[10], tok::identifier, TT_ClassHeadName);
`
561
573
`EXPECT_TOKEN(Tokens[11], tok::l_brace, TT_StructLBrace);
`
562
574
``
``
575
`+
Tokens = annotate(
`
``
576
`+
"template <> struct __declspec(foo) Op<Bar *> : OpImpl<Bar *> {};");
`
``
577
`+
ASSERT_EQ(Tokens.size(), 23u) << Tokens;
`
``
578
`+
EXPECT_TOKEN(Tokens[5], tok::l_paren, TT_AttributeLParen);
`
``
579
`+
EXPECT_TOKEN(Tokens[7], tok::r_paren, TT_AttributeRParen);
`
``
580
`+
EXPECT_TOKEN(Tokens[8], tok::identifier, TT_ClassHeadName);
`
``
581
`+
EXPECT_TOKEN(Tokens[13], tok::colon, TT_InheritanceColon);
`
``
582
`+
EXPECT_TOKEN(Tokens[19], tok::l_brace, TT_StructLBrace);
`
``
583
`+
EXPECT_TOKEN(Tokens[20], tok::r_brace, TT_StructRBrace);
`
``
584
+
563
585
`constexpr StringRef Code{"struct EXPORT StructName {};"};
`
564
586
``
565
587
` Tokens = annotate(Code);
`
566
588
`ASSERT_EQ(Tokens.size(), 7u) << Tokens;
`
``
589
`+
EXPECT_TOKEN(Tokens[2], tok::identifier, TT_ClassHeadName);
`
567
590
`EXPECT_TOKEN(Tokens[3], tok::l_brace, TT_StructLBrace);
`
568
591
`EXPECT_TOKEN(Tokens[4], tok::r_brace, TT_StructRBrace);
`
569
592
``
`@@ -572,18 +595,21 @@ TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
`
572
595
` Tokens = annotate(Code, Style);
`
573
596
`ASSERT_EQ(Tokens.size(), 7u) << Tokens;
`
574
597
`EXPECT_TOKEN(Tokens[1], tok::identifier, TT_AttributeMacro);
`
``
598
`+
EXPECT_TOKEN(Tokens[2], tok::identifier, TT_ClassHeadName);
`
575
599
`EXPECT_TOKEN(Tokens[3], tok::l_brace, TT_StructLBrace);
`
576
600
`EXPECT_TOKEN(Tokens[4], tok::r_brace, TT_StructRBrace);
`
577
601
`}
`
578
602
``
579
603
`TEST_F(TokenAnnotatorTest, UnderstandsUnions) {
`
580
604
`auto Tokens = annotate("union U {};");
`
581
605
`ASSERT_EQ(Tokens.size(), 6u) << Tokens;
`
``
606
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
582
607
`EXPECT_TOKEN(Tokens[2], tok::l_brace, TT_UnionLBrace);
`
583
608
`EXPECT_TOKEN(Tokens[3], tok::r_brace, TT_UnionRBrace);
`
584
609
``
585
610
` Tokens = annotate("union U { void f() { return; } };");
`
586
611
`ASSERT_EQ(Tokens.size(), 14u) << Tokens;
`
``
612
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
587
613
`EXPECT_TOKEN(Tokens[2], tok::l_brace, TT_UnionLBrace);
`
588
614
`EXPECT_TOKEN(Tokens[7], tok::l_brace, TT_FunctionLBrace);
`
589
615
`EXPECT_TOKEN(Tokens[11], tok::r_brace, TT_UnionRBrace);
`
`@@ -716,8 +742,10 @@ TEST_F(TokenAnnotatorTest, UnderstandsTemplateTemplateParameters) {
`
716
742
`EXPECT_TOKEN(Tokens[11], tok::less, TT_TemplateOpener);
`
717
743
`EXPECT_TOKEN(Tokens[14], tok::greater, TT_TemplateCloser);
`
718
744
`EXPECT_FALSE(Tokens[14]->ClosesTemplateDeclaration);
`
``
745
`+
EXPECT_TOKEN(Tokens[16], tok::identifier, TT_Unknown);
`
719
746
`EXPECT_TOKEN(Tokens[21], tok::greater, TT_TemplateCloser);
`
720
747
`EXPECT_TRUE(Tokens[21]->ClosesTemplateDeclaration);
`
``
748
`+
EXPECT_TOKEN(Tokens[23], tok::identifier, TT_ClassHeadName);
`
721
749
`}
`
722
750
``
723
751
`TEST_F(TokenAnnotatorTest, UnderstandsWhitespaceSensitiveMacros) {
`
`@@ -800,6 +828,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsCasts) {
`
800
828
``
801
829
` Tokens = annotate("return (struct foo){};");
`
802
830
`ASSERT_EQ(Tokens.size(), 9u) << Tokens;
`
``
831
`+
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
`
803
832
`EXPECT_TOKEN(Tokens[4], tok::r_paren, TT_CastRParen);
`
804
833
``
805
834
` Tokens = annotate("#define FOO(bar) foo((uint64_t)&bar)");
`
`@@ -1169,6 +1198,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsRequiresClausesAndConcepts) {
`
1169
1198
`EXPECT_EQ(Tokens[32]->FakeRParens, 1u);
`
1170
1199
`EXPECT_TOKEN(Tokens[33], tok::r_paren, TT_Unknown);
`
1171
1200
`EXPECT_TRUE(Tokens[33]->ClosesRequiresClause);
`
``
1201
`+
EXPECT_TOKEN(Tokens[35], tok::identifier, TT_Unknown);
`
1172
1202
``
1173
1203
` Tokens = annotate("template \n"
`
1174
1204
`"void foo(T) noexcept requires Bar;");
`
`@@ -1250,6 +1280,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsRequiresClausesAndConcepts) {
`
1250
1280
`"return number_zero_v; }\n"
`
1251
1281
`"};");
`
1252
1282
`ASSERT_EQ(Tokens.size(), 44u) << Tokens;
`
``
1283
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_ClassHeadName);
`
``
1284
`+
EXPECT_TOKEN(Tokens[11], tok::identifier, TT_Unknown);
`
1253
1285
`EXPECT_TOKEN(Tokens[13], tok::kw_requires, TT_RequiresClause);
`
1254
1286
`EXPECT_TOKEN(Tokens[14], tok::kw_requires, TT_RequiresExpression);
`
1255
1287
`EXPECT_TOKEN(Tokens[15], tok::l_brace, TT_RequiresExpressionLBrace);
`
`@@ -1261,6 +1293,8 @@ TEST_F(TokenAnnotatorTest, UnderstandsRequiresClausesAndConcepts) {
`
1261
1293
`annotate("template <class A, class B> concept C ="
`
1262
1294
`"std::same_as<std::iter_value_t, std::iter_value_t>;");
`
1263
1295
`ASSERT_EQ(Tokens.size(), 31u) << Tokens;
`
``
1296
`+
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
`
``
1297
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_Unknown);
`
1264
1298
`EXPECT_TOKEN(Tokens[8], tok::kw_concept, TT_Unknown);
`
1265
1299
`EXPECT_TOKEN(Tokens[14], tok::less, TT_TemplateOpener);
`
1266
1300
`EXPECT_TOKEN(Tokens[18], tok::less, TT_TemplateOpener);
`
`@@ -1877,6 +1911,7 @@ TEST_F(TokenAnnotatorTest, UnderstandsLambdas) {
`
1877
1911
`ASSERT_EQ(Tokens.size(), 12u) << Tokens;
`
1878
1912
`EXPECT_TOKEN(Tokens[0], tok::l_square, TT_LambdaLSquare);
`
1879
1913
`EXPECT_TOKEN(Tokens[2], tok::arrow, TT_LambdaArrow);
`
``
1914
`+
EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown);
`
1880
1915
`EXPECT_TOKEN(Tokens[5], tok::l_brace, TT_LambdaLBrace);
`
1881
1916
``
1882
1917
` Tokens = annotate("foo([&](u32 bar) attribute((attr)) -> void {});");
`
`@@ -2757,6 +2792,7 @@ TEST_F(TokenAnnotatorTest, UnderstandTableGenTokens) {
`
2757
2792
``
2758
2793
`// Structured statements.
`
2759
2794
` Tokens = Annotate("class Foo {}");
`
``
2795
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_StartOfName);
`
2760
2796
`EXPECT_TOKEN(Tokens[2], tok::l_brace, TT_FunctionLBrace);
`
2761
2797
` Tokens = Annotate("def Def: Foo {}");
`
2762
2798
`EXPECT_TOKEN(Tokens[2], tok::colon, TT_InheritanceColon);
`
`@@ -3222,6 +3258,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3222
3258
``
3223
3259
` Tokens = annotate("class Foo f() {}");
`
3224
3260
`ASSERT_EQ(Tokens.size(), 11u) << Tokens;
`
``
3261
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_Unknown);
`
3225
3262
`EXPECT_TOKEN(Tokens[5], tok::identifier, TT_FunctionDeclarationName);
`
3226
3263
`EXPECT_TOKEN(Tokens[6], tok::l_paren, TT_FunctionDeclarationLParen);
`
3227
3264
`EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_FunctionLBrace);
`
`@@ -3230,6 +3267,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3230
3267
``
3231
3268
` Tokens = annotate("template class Foo f() {}");
`
3232
3269
`ASSERT_EQ(Tokens.size(), 16u) << Tokens;
`
``
3270
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_Unknown);
`
3233
3271
`EXPECT_TOKEN(Tokens[10], tok::identifier, TT_FunctionDeclarationName);
`
3234
3272
`EXPECT_TOKEN(Tokens[11], tok::l_paren, TT_FunctionDeclarationLParen);
`
3235
3273
`EXPECT_TOKEN(Tokens[13], tok::l_brace, TT_FunctionLBrace);
`
`@@ -3340,36 +3378,45 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3340
3378
``
3341
3379
` Tokens = annotate("struct ::Foo {};");
`
3342
3380
`ASSERT_EQ(Tokens.size(), 7u) << Tokens;
`
``
3381
`+
EXPECT_TOKEN(Tokens[2], tok::identifier, TT_ClassHeadName);
`
3343
3382
`EXPECT_BRACE_KIND(Tokens[3], BK_Block);
`
3344
3383
`EXPECT_BRACE_KIND(Tokens[4], BK_Block);
`
3345
3384
``
3346
3385
` Tokens = annotate("struct NS::Foo {};");
`
3347
3386
`ASSERT_EQ(Tokens.size(), 8u) << Tokens;
`
``
3387
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_Unknown);
`
``
3388
`+
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_ClassHeadName);
`
3348
3389
`EXPECT_BRACE_KIND(Tokens[4], BK_Block);
`
3349
3390
`EXPECT_BRACE_KIND(Tokens[5], BK_Block);
`
3350
3391
``
3351
3392
` Tokens = annotate("struct Foo {};");
`
3352
3393
`ASSERT_EQ(Tokens.size(), 9u) << Tokens;
`
``
3394
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
3353
3395
`EXPECT_BRACE_KIND(Tokens[5], BK_Block);
`
3354
3396
`EXPECT_BRACE_KIND(Tokens[6], BK_Block);
`
3355
3397
``
3356
3398
` Tokens = annotate("struct Foo::Bar {};");
`
3357
3399
`ASSERT_EQ(Tokens.size(), 11u) << Tokens;
`
``
3400
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_Unknown);
`
``
3401
`+
EXPECT_TOKEN(Tokens[6], tok::identifier, TT_ClassHeadName);
`
3358
3402
`EXPECT_BRACE_KIND(Tokens[7], BK_Block);
`
3359
3403
`EXPECT_BRACE_KIND(Tokens[8], BK_Block);
`
3360
3404
``
3361
3405
` Tokens = annotate("struct Foo : Base {};");
`
3362
3406
`ASSERT_EQ(Tokens.size(), 11u) << Tokens;
`
``
3407
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
3363
3408
`EXPECT_BRACE_KIND(Tokens[7], BK_Block);
`
3364
3409
`EXPECT_BRACE_KIND(Tokens[8], BK_Block);
`
3365
3410
``
3366
3411
` Tokens = annotate("struct Foo final {};");
`
3367
3412
`ASSERT_EQ(Tokens.size(), 7u) << Tokens;
`
``
3413
`+
EXPECT_TOKEN(Tokens[1], tok::identifier, TT_ClassHeadName);
`
3368
3414
`EXPECT_BRACE_KIND(Tokens[3], BK_Block);
`
3369
3415
`EXPECT_BRACE_KIND(Tokens[4], BK_Block);
`
3370
3416
``
3371
3417
` Tokens = annotate("struct [[foo]] [[bar]] Foo final : Base1, Base2 {};");
`
3372
3418
`ASSERT_EQ(Tokens.size(), 21u) << Tokens;
`
``
3419
`+
EXPECT_TOKEN(Tokens[11], tok::identifier, TT_ClassHeadName);
`
3373
3420
`EXPECT_BRACE_KIND(Tokens[17], BK_Block);
`
3374
3421
`EXPECT_BRACE_KIND(Tokens[18], BK_Block);
`
3375
3422
``
`@@ -3405,6 +3452,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3405
3452
`"#endif\n"
`
3406
3453
`"};");
`
3407
3454
`ASSERT_EQ(Tokens.size(), 29u) << Tokens;
`
``
3455
`+
EXPECT_TOKEN(Tokens[8], tok::identifier, TT_ClassHeadName);
`
3408
3456
`EXPECT_BRACE_KIND(Tokens[11], BK_Block);
`
3409
3457
`EXPECT_BRACE_KIND(Tokens[17], BK_Block);
`
3410
3458
`EXPECT_BRACE_KIND(Tokens[22], BK_Block);
`
`@@ -3456,6 +3504,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3456
3504
` Tokens = annotate("a = class extends goog.a {};",
`
3457
3505
`getGoogleStyle(FormatStyle::LK_JavaScript));
`
3458
3506
`ASSERT_EQ(Tokens.size(), 11u) << Tokens;
`
``
3507
`+
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown);
`
3459
3508
`EXPECT_TOKEN(Tokens[7], tok::l_brace, TT_ClassLBrace);
`
3460
3509
`EXPECT_BRACE_KIND(Tokens[7], BK_Block);
`
3461
3510
`EXPECT_TOKEN(Tokens[8], tok::r_brace, TT_ClassRBrace);
`
`@@ -3464,6 +3513,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3464
3513
` Tokens = annotate("a = class Foo extends goog.a {};",
`
3465
3514
`getGoogleStyle(FormatStyle::LK_JavaScript));
`
3466
3515
`ASSERT_EQ(Tokens.size(), 12u) << Tokens;
`
``
3516
`+
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_ClassHeadName);
`
3467
3517
`EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown); // Not TT_StartOfName
`
3468
3518
`EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_ClassLBrace);
`
3469
3519
`EXPECT_BRACE_KIND(Tokens[8], BK_Block);
`
`@@ -3473,6 +3523,8 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3473
3523
` Tokens = annotate("#define FOO(X) \\n"
`
3474
3524
`" struct X##tag {};");
`
3475
3525
`ASSERT_EQ(Tokens.size(), 14u) << Tokens;
`
``
3526
`+
EXPECT_TOKEN(Tokens[7], tok::identifier, TT_Unknown);
`
``
3527
`+
EXPECT_TOKEN(Tokens[9], tok::identifier, TT_ClassHeadName);
`
3476
3528
`EXPECT_TOKEN(Tokens[10], tok::l_brace, TT_StructLBrace);
`
3477
3529
`EXPECT_BRACE_KIND(Tokens[10], BK_Block);
`
3478
3530
`EXPECT_TOKEN(Tokens[11], tok::r_brace, TT_StructRBrace);
`
`@@ -3483,6 +3535,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
`
3483
3535
`" void f() { return; } \\n"
`
3484
3536
`" };");
`
3485
3537
`ASSERT_EQ(Tokens.size(), 20u) << Tokens;
`
``
3538
`+
EXPECT_TOKEN(Tokens[4], tok::identifier, TT_ClassHeadName);
`
3486
3539
`EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_StructLBrace);
`
3487
3540
`EXPECT_BRACE_KIND(Tokens[8], BK_Block);
`
3488
3541
`EXPECT_TOKEN(Tokens[10], tok::identifier, TT_FunctionDeclarationName);
`