[clang] [clang-format] Don't annotate enum colon as InheritanceColon (PR #138440)
via cfe-commits
cfe-commits at lists.llvm.org
Sat May 3 23:40:14 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-format
Author: Owen Pan (owenca)
<details>
<summary>Changes</summary>
Fix #<!-- -->61156
---
Full diff: https://github.com/llvm/llvm-project/pull/138440.diff
2 Files Affected:
- (modified) clang/lib/Format/TokenAnnotator.cpp (+1-1)
- (modified) clang/unittests/Format/TokenAnnotatorTest.cpp (+9-3)
``````````diff
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index caf386cffd25b..e549c98179d3e 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1423,7 +1423,7 @@ class AnnotatingParser {
Tok->setType(TT_BitFieldColon);
} else if (Contexts.size() == 1 &&
!Line.First->isOneOf(tok::kw_enum, tok::kw_case,
- tok::kw_default)) {
+ tok::kw_default, tok::kw_typedef)) {
FormatToken *Prev = Tok->getPreviousNonComment();
if (!Prev)
break;
diff --git a/clang/unittests/Format/TokenAnnotatorTest.cpp b/clang/unittests/Format/TokenAnnotatorTest.cpp
index 0fb64ceec5c97..af54716783f54 100644
--- a/clang/unittests/Format/TokenAnnotatorTest.cpp
+++ b/clang/unittests/Format/TokenAnnotatorTest.cpp
@@ -3666,7 +3666,7 @@ TEST_F(TokenAnnotatorTest, BraceKind) {
getGoogleStyle(FormatStyle::LK_JavaScript));
ASSERT_EQ(Tokens.size(), 12u) << Tokens;
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_ClassHeadName);
- EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown); // Not TT_StartOfName
+ EXPECT_TOKEN(Tokens[4], tok::identifier, TT_Unknown); // Not TT_StartOfName.
EXPECT_TOKEN(Tokens[8], tok::l_brace, TT_ClassLBrace);
EXPECT_BRACE_KIND(Tokens[8], BK_Block);
EXPECT_TOKEN(Tokens[9], tok::r_brace, TT_ClassRBrace);
@@ -3833,7 +3833,7 @@ TEST_F(TokenAnnotatorTest, CppOnlyKeywordInC) {
ASSERT_EQ(Tokens.size(), 8u) << Tokens;
EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown); // Not tok::kw_new
EXPECT_TOKEN(Tokens[4], tok::amp, TT_BinaryOperator);
- EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown); // Not TT_StartOfName
+ EXPECT_TOKEN(Tokens[3], tok::identifier, TT_Unknown); // Not TT_StartOfName.
}
TEST_F(TokenAnnotatorTest, FunctionTryBlock) {
@@ -3947,7 +3947,7 @@ TEST_F(TokenAnnotatorTest, VariableTemplate) {
EXPECT_TOKEN(Tokens[4], tok::identifier, TT_VariableTemplate);
EXPECT_TOKEN(Tokens[5], tok::less, TT_TemplateOpener);
EXPECT_TOKEN(Tokens[7], tok::greater, TT_TemplateCloser);
- EXPECT_TOKEN(Tokens[8], tok::r_paren, TT_Unknown); // Not TT_CastRParen
+ EXPECT_TOKEN(Tokens[8], tok::r_paren, TT_Unknown); // Not TT_CastRParen.
EXPECT_TOKEN(Tokens[9], tok::plus, TT_BinaryOperator);
}
@@ -4033,6 +4033,12 @@ TEST_F(TokenAnnotatorTest, UserDefinedLiteral) {
EXPECT_EQ(Tokens[3]->TokenText, "2_$");
}
+TEST_F(TokenAnnotatorTest, EnumColonInTypedef) {
+ auto Tokens = annotate("typedef enum : int {} foo;");
+ ASSERT_EQ(Tokens.size(), 9u) << Tokens;
+ EXPECT_TOKEN(Tokens[2], tok::colon, TT_Unknown); // Not TT_InheritanceColon.
+}
+
} // namespace
} // namespace format
} // namespace clang
``````````
</details>
https://github.com/llvm/llvm-project/pull/138440
More information about the cfe-commits
mailing list