[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);

`