@@ -393,46 +393,55 @@ TEST_F(TokenAnnotatorTest, UnderstandsClasses) {
393
393
auto Tokens = annotate (" class C {};" );
394
394
EXPECT_EQ (Tokens.size (), 6u ) << Tokens;
395
395
EXPECT_TOKEN (Tokens[2 ], tok::l_brace, TT_ClassLBrace);
396
+ EXPECT_TOKEN (Tokens[3 ], tok::r_brace, TT_ClassRBrace);
396
397
397
398
Tokens = annotate (" const class C {} c;" );
398
399
EXPECT_EQ (Tokens.size (), 8u ) << Tokens;
399
400
EXPECT_TOKEN (Tokens[3 ], tok::l_brace, TT_ClassLBrace);
401
+ EXPECT_TOKEN (Tokens[4 ], tok::r_brace, TT_ClassRBrace);
400
402
401
403
Tokens = annotate (" const class {} c;" );
402
404
EXPECT_EQ (Tokens.size (), 7u ) << Tokens;
403
405
EXPECT_TOKEN (Tokens[2 ], tok::l_brace, TT_ClassLBrace);
406
+ EXPECT_TOKEN (Tokens[3 ], tok::r_brace, TT_ClassRBrace);
404
407
405
408
Tokens = annotate (" class [[deprecated(\"\" )]] C { int i; };" );
406
409
EXPECT_EQ (Tokens.size (), 17u ) << Tokens;
407
410
EXPECT_TOKEN (Tokens[10 ], tok::l_brace, TT_ClassLBrace);
411
+ EXPECT_TOKEN (Tokens[14 ], tok::r_brace, TT_ClassRBrace);
408
412
}
409
413
410
414
TEST_F (TokenAnnotatorTest, UnderstandsStructs) {
411
415
auto Tokens = annotate (" struct S {};" );
412
416
EXPECT_EQ (Tokens.size (), 6u ) << Tokens;
413
417
EXPECT_TOKEN (Tokens[2 ], tok::l_brace, TT_StructLBrace);
418
+ EXPECT_TOKEN (Tokens[3 ], tok::r_brace, TT_StructRBrace);
414
419
415
420
Tokens = annotate (" struct EXPORT_MACRO [[nodiscard]] C { int i; };" );
416
421
EXPECT_EQ (Tokens.size (), 15u ) << Tokens;
417
422
EXPECT_TOKEN (Tokens[8 ], tok::l_brace, TT_StructLBrace);
423
+ EXPECT_TOKEN (Tokens[12 ], tok::r_brace, TT_StructRBrace);
418
424
419
425
Tokens = annotate (" struct [[deprecated]] [[nodiscard]] C { int i; };" );
420
426
EXPECT_EQ (Tokens.size (), 19u ) << Tokens;
421
427
EXPECT_TOKEN (Tokens[12 ], tok::l_brace, TT_StructLBrace);
428
+ EXPECT_TOKEN (Tokens[16 ], tok::r_brace, TT_StructRBrace);
422
429
423
430
Tokens = annotate (" template <typename T> struct S<const T[N]> {};" );
424
431
EXPECT_EQ (Tokens.size (), 18u ) << Tokens;
425
432
EXPECT_TOKEN (Tokens[7 ], tok::less, TT_TemplateOpener);
426
433
EXPECT_TOKEN (Tokens[10 ], tok::l_square, TT_ArraySubscriptLSquare);
427
434
EXPECT_TOKEN (Tokens[13 ], tok::greater, TT_TemplateCloser);
428
435
EXPECT_TOKEN (Tokens[14 ], tok::l_brace, TT_StructLBrace);
436
+ EXPECT_TOKEN (Tokens[15 ], tok::r_brace, TT_StructRBrace);
429
437
430
438
Tokens = annotate (" template <typename T> struct S<T const[N]> {};" );
431
439
EXPECT_EQ (Tokens.size (), 18u ) << Tokens;
432
440
EXPECT_TOKEN (Tokens[7 ], tok::less, TT_TemplateOpener);
433
441
EXPECT_TOKEN (Tokens[10 ], tok::l_square, TT_ArraySubscriptLSquare);
434
442
EXPECT_TOKEN (Tokens[13 ], tok::greater, TT_TemplateCloser);
435
443
EXPECT_TOKEN (Tokens[14 ], tok::l_brace, TT_StructLBrace);
444
+ EXPECT_TOKEN (Tokens[15 ], tok::r_brace, TT_StructRBrace);
436
445
437
446
Tokens = annotate (" template <typename T, unsigned n> struct S<T const[n]> {\n "
438
447
" void f(T const (&a)[n]);\n "
@@ -445,17 +454,20 @@ TEST_F(TokenAnnotatorTest, UnderstandsStructs) {
445
454
EXPECT_TOKEN (Tokens[23 ], tok::l_paren, TT_FunctionTypeLParen);
446
455
EXPECT_TOKEN (Tokens[24 ], tok::amp, TT_UnaryOperator);
447
456
EXPECT_TOKEN (Tokens[27 ], tok::l_square, TT_ArraySubscriptLSquare);
457
+ EXPECT_TOKEN (Tokens[32 ], tok::r_brace, TT_StructRBrace);
448
458
}
449
459
450
460
TEST_F (TokenAnnotatorTest, UnderstandsUnions) {
451
461
auto Tokens = annotate (" union U {};" );
452
462
EXPECT_EQ (Tokens.size (), 6u ) << Tokens;
453
463
EXPECT_TOKEN (Tokens[2 ], tok::l_brace, TT_UnionLBrace);
464
+ EXPECT_TOKEN (Tokens[3 ], tok::r_brace, TT_UnionRBrace);
454
465
455
466
Tokens = annotate (" union U { void f() { return; } };" );
456
467
EXPECT_EQ (Tokens.size (), 14u ) << Tokens;
457
468
EXPECT_TOKEN (Tokens[2 ], tok::l_brace, TT_UnionLBrace);
458
469
EXPECT_TOKEN (Tokens[7 ], tok::l_brace, TT_FunctionLBrace);
470
+ EXPECT_TOKEN (Tokens[11 ], tok::r_brace, TT_UnionRBrace);
459
471
}
460
472
461
473
TEST_F (TokenAnnotatorTest, UnderstandsEnums) {
0 commit comments