Author: NagaChaitanya Vellanki Date: 2023-03-20T15:43:00Z New Revision: afce10c5b60fada1db369d3770f4389da7ef30ef
URL: https://github.com/llvm/llvm-project/commit/afce10c5b60fada1db369d3770f4389da7ef30ef DIFF: https://github.com/llvm/llvm-project/commit/afce10c5b60fada1db369d3770f4389da7ef30ef.diff LOG: [clang][ExtractAPI] Add semicolons for enum, typedef, struct declaration fragments Fixes https://github.com/llvm/llvm-project/issues/61480 Reviewed By: dang Differential Revision: https://reviews.llvm.org/D146354 Added: Modified: clang/lib/ExtractAPI/DeclarationFragments.cpp clang/test/ExtractAPI/anonymous_record_no_typedef.c clang/test/ExtractAPI/enum.c clang/test/ExtractAPI/struct.c clang/test/ExtractAPI/typedef.c clang/test/ExtractAPI/typedef_anonymous_record.c clang/test/ExtractAPI/typedef_chain.c clang/test/ExtractAPI/underscored.c Removed: ################################################################################ diff --git a/clang/lib/ExtractAPI/DeclarationFragments.cpp b/clang/lib/ExtractAPI/DeclarationFragments.cpp index 12c91c582aa98..b8de1270b5f02 100644 --- a/clang/lib/ExtractAPI/DeclarationFragments.cpp +++ b/clang/lib/ExtractAPI/DeclarationFragments.cpp @@ -470,7 +470,7 @@ DeclarationFragmentsBuilder::getFragmentsForEnum(const EnumDecl *EnumDecl) { getFragmentsForType(IntegerType, EnumDecl->getASTContext(), After)) .append(std::move(After)); - return Fragments; + return Fragments.append(";", DeclarationFragments::FragmentKind::Text); } DeclarationFragments @@ -493,7 +493,8 @@ DeclarationFragmentsBuilder::getFragmentsForStruct(const RecordDecl *Record) { if (!Record->getName().empty()) Fragments.appendSpace().append( Record->getName(), DeclarationFragments::FragmentKind::Identifier); - return Fragments; + + return Fragments.append(";", DeclarationFragments::FragmentKind::Text); } DeclarationFragments @@ -743,7 +744,7 @@ DeclarationFragments DeclarationFragmentsBuilder::getFragmentsForTypedef( .appendSpace() .append(Decl->getName(), DeclarationFragments::FragmentKind::Identifier); - return Fragments; + return Fragments.append(";", DeclarationFragments::FragmentKind::Text); } template <typename FunctionT> diff --git a/clang/test/ExtractAPI/anonymous_record_no_typedef.c b/clang/test/ExtractAPI/anonymous_record_no_typedef.c index abb96db058dbf..880a42c30ceb8 100644 --- a/clang/test/ExtractAPI/anonymous_record_no_typedef.c +++ b/clang/test/ExtractAPI/anonymous_record_no_typedef.c @@ -94,6 +94,10 @@ struct Vehicle { "kind": "typeIdentifier", "preciseIdentifier": "c:i", "spelling": "unsigned int" + }, + { + "kind": "text", + "spelling": ";" } ], "docComment": { @@ -241,6 +245,10 @@ struct Vehicle { { "kind": "identifier", "spelling": "Vehicle" + }, + { + "kind": "text", + "spelling": ";" } ], "docComment": { diff --git a/clang/test/ExtractAPI/enum.c b/clang/test/ExtractAPI/enum.c index 7b345464cb982..a6c749028bd17 100644 --- a/clang/test/ExtractAPI/enum.c +++ b/clang/test/ExtractAPI/enum.c @@ -153,6 +153,10 @@ enum { "kind": "typeIdentifier", "preciseIdentifier": "c:i", "spelling": "unsigned int" + }, + { + "kind": "text", + "spelling": ";" } ], "docComment": { @@ -461,6 +465,10 @@ enum { "kind": "typeIdentifier", "preciseIdentifier": "c:c", "spelling": "unsigned char" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -684,6 +692,10 @@ enum { "kind": "typeIdentifier", "preciseIdentifier": "c:i", "spelling": "unsigned int" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -772,6 +784,10 @@ enum { "kind": "typeIdentifier", "preciseIdentifier": "c:i", "spelling": "unsigned int" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { diff --git a/clang/test/ExtractAPI/struct.c b/clang/test/ExtractAPI/struct.c index 7e93f0d7e7bfa..cd6d25d835821 100644 --- a/clang/test/ExtractAPI/struct.c +++ b/clang/test/ExtractAPI/struct.c @@ -89,6 +89,10 @@ struct Color { { "kind": "identifier", "spelling": "Color" + }, + { + "kind": "text", + "spelling": ";" } ], "docComment": { diff --git a/clang/test/ExtractAPI/typedef.c b/clang/test/ExtractAPI/typedef.c index fb9b8ef32cdc1..89df9db8b362d 100644 --- a/clang/test/ExtractAPI/typedef.c +++ b/clang/test/ExtractAPI/typedef.c @@ -66,6 +66,10 @@ typedef int MyInt; { "kind": "identifier", "spelling": "MyInt" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { diff --git a/clang/test/ExtractAPI/typedef_anonymous_record.c b/clang/test/ExtractAPI/typedef_anonymous_record.c index 1bd93b92ede81..501873ed16de2 100644 --- a/clang/test/ExtractAPI/typedef_anonymous_record.c +++ b/clang/test/ExtractAPI/typedef_anonymous_record.c @@ -75,6 +75,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyEnum" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -170,6 +174,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyStruct" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -223,6 +231,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyStructStruct" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -283,6 +295,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyStructStructStruct" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -343,6 +359,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyEnumEnum" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -403,6 +423,10 @@ typedef MyEnumEnum MyEnumEnumEnum; { "kind": "identifier", "spelling": "MyEnumEnumEnum" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { diff --git a/clang/test/ExtractAPI/typedef_chain.c b/clang/test/ExtractAPI/typedef_chain.c index 3ba47651fda1e..ff838978d492a 100644 --- a/clang/test/ExtractAPI/typedef_chain.c +++ b/clang/test/ExtractAPI/typedef_chain.c @@ -68,6 +68,10 @@ typedef MyIntInt MyIntIntInt; { "kind": "identifier", "spelling": "MyInt" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -128,6 +132,10 @@ typedef MyIntInt MyIntIntInt; { "kind": "identifier", "spelling": "MyIntInt" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -188,6 +196,10 @@ typedef MyIntInt MyIntIntInt; { "kind": "identifier", "spelling": "MyIntIntInt" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { diff --git a/clang/test/ExtractAPI/underscored.c b/clang/test/ExtractAPI/underscored.c index 6eeaf1ce412c3..e619849c8ceca 100644 --- a/clang/test/ExtractAPI/underscored.c +++ b/clang/test/ExtractAPI/underscored.c @@ -135,6 +135,10 @@ typedef _HiddenTypedef ExposedTypedefToHidden; { "kind": "identifier", "spelling": "ExposedRecord" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -296,6 +300,10 @@ typedef _HiddenTypedef ExposedTypedefToHidden; { "kind": "identifier", "spelling": "ExposedTypedef" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { @@ -356,6 +364,10 @@ typedef _HiddenTypedef ExposedTypedefToHidden; { "kind": "identifier", "spelling": "ExposedTypedefToHidden" + }, + { + "kind": "text", + "spelling": ";" } ], "identifier": { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits