mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-28 05:46:06 +00:00
Comment AST: DeclInfo: add a special kind for enums.
Comment XML: add a root node kind for enums. llvm-svn: 161442
This commit is contained in:
parent
84689b0d5a
commit
168d23414a
@ -13,6 +13,7 @@
|
||||
<ref name="Variable" />
|
||||
<ref name="Namespace" />
|
||||
<ref name="Typedef" />
|
||||
<ref name="Enum" />
|
||||
</choice>
|
||||
</start>
|
||||
|
||||
@ -216,6 +217,36 @@
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="Enum">
|
||||
<element name="Enum">
|
||||
<ref name="attrSourceLocation" />
|
||||
<ref name="Name" />
|
||||
<optional>
|
||||
<ref name="USR" />
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="Abstract" />
|
||||
</optional>
|
||||
|
||||
<!-- Template parameters, parameters and results don't make sense for
|
||||
enums, but the user can specify \tparam \param or \returns in a
|
||||
comment anyway. -->
|
||||
<optional>
|
||||
<ref name="TemplateParameters" />
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="Parameters" />
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="ResultDiscussion" />
|
||||
</optional>
|
||||
|
||||
<optional>
|
||||
<ref name="Discussion" />
|
||||
</optional>
|
||||
</element>
|
||||
</define>
|
||||
|
||||
<define name="attrSourceLocation">
|
||||
<optional>
|
||||
<attribute name="file">
|
||||
|
@ -962,7 +962,10 @@ struct DeclInfo {
|
||||
|
||||
/// A C++ typedef-name (a 'typedef' decl specifier or alias-declaration),
|
||||
/// see \c TypedefNameDecl.
|
||||
TypedefKind
|
||||
TypedefKind,
|
||||
|
||||
/// An enumeration or scoped enumeration.
|
||||
EnumKind
|
||||
};
|
||||
|
||||
/// What kind of template specialization \c ThisDecl is.
|
||||
|
@ -251,6 +251,9 @@ void DeclInfo::fill() {
|
||||
TemplateParameters = TAT->getTemplateParameters();
|
||||
break;
|
||||
}
|
||||
case Decl::Enum:
|
||||
Kind = EnumKind;
|
||||
break;
|
||||
}
|
||||
|
||||
IsFilled = true;
|
||||
|
6
clang/test/Index/Inputs/CommentXML/valid-enum-01.xml
Normal file
6
clang/test/Index/Inputs/CommentXML/valid-enum-01.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Enum>
|
||||
<Name>aaa</Name>
|
||||
<Abstract><Para>Aaa.</Para></Abstract>
|
||||
</Enum>
|
||||
|
@ -428,11 +428,18 @@ namespace comment_to_xml_conversion_13 {
|
||||
}
|
||||
}
|
||||
|
||||
/// Aaa.
|
||||
enum comment_to_xml_conversion_15 {
|
||||
/// Aaa.
|
||||
comment_to_xml_conversion_16
|
||||
};
|
||||
|
||||
/// Aaa.
|
||||
enum class comment_to_xml_conversion_17 {
|
||||
/// Aaa.
|
||||
comment_to_xml_conversion_18
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// RUN: rm -rf %t
|
||||
@ -889,4 +896,7 @@ enum comment_to_xml_conversion_15 {
|
||||
// CHECK: annotate-comments.cpp:422:5: VarDecl=comment_to_xml_conversion_12:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}annotate-comments.cpp" line="422" column="5"><Name>comment_to_xml_conversion_12</Name><USR>c:@comment_to_xml_conversion_12</USR><Abstract><Para> Aaa.</Para></Abstract></Variable>]
|
||||
// CHECK: annotate-comments.cpp:425:11: Namespace=comment_to_xml_conversion_13:{{.*}} FullCommentAsXML=[<Namespace file="{{[^"]+}}annotate-comments.cpp" line="425" column="11"><Name>comment_to_xml_conversion_13</Name><USR>c:@N@comment_to_xml_conversion_13</USR><Abstract><Para> Aaa.</Para></Abstract></Namespace>]
|
||||
// CHECK: annotate-comments.cpp:427:13: Namespace=comment_to_xml_conversion_14:{{.*}} FullCommentAsXML=[<Namespace file="{{[^"]+}}annotate-comments.cpp" line="427" column="13"><Name>comment_to_xml_conversion_14</Name><USR>c:@N@comment_to_xml_conversion_13@N@comment_to_xml_conversion_14</USR><Abstract><Para> Aaa.</Para></Abstract></Namespace>]
|
||||
// CHECK: annotate-comments.cpp:433:3: EnumConstantDecl=comment_to_xml_conversion_16:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}annotate-comments.cpp" line="433" column="3"><Name>comment_to_xml_conversion_16</Name><USR>c:@E@comment_to_xml_conversion_15@comment_to_xml_conversion_16</USR><Abstract><Para> Aaa.</Para></Abstract></Variable>]
|
||||
// CHECK: annotate-comments.cpp:432:6: EnumDecl=comment_to_xml_conversion_15:{{.*}} FullCommentAsXML=[<Enum file="{{[^"]+}}annotate-comments.cpp" line="432" column="6"><Name>comment_to_xml_conversion_15</Name><USR>c:@E@comment_to_xml_conversion_15</USR><Abstract><Para> Aaa.</Para></Abstract></Enum>]
|
||||
// CHECK: annotate-comments.cpp:434:3: EnumConstantDecl=comment_to_xml_conversion_16:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}annotate-comments.cpp" line="434" column="3"><Name>comment_to_xml_conversion_16</Name><USR>c:@E@comment_to_xml_conversion_15@comment_to_xml_conversion_16</USR><Abstract><Para> Aaa.</Para></Abstract></Variable>]
|
||||
// CHECK: annotate-comments.cpp:438:12: EnumDecl=comment_to_xml_conversion_17:{{.*}} FullCommentAsXML=[<Enum file="{{[^"]+}}annotate-comments.cpp" line="438" column="12"><Name>comment_to_xml_conversion_17</Name><USR>c:@E@comment_to_xml_conversion_17</USR><Abstract><Para> Aaa.</Para></Abstract></Enum>]
|
||||
// CHECK: annotate-comments.cpp:440:3: EnumConstantDecl=comment_to_xml_conversion_18:{{.*}} FullCommentAsXML=[<Variable file="{{[^"]+}}annotate-comments.cpp" line="440" column="3"><Name>comment_to_xml_conversion_18</Name><USR>c:@E@comment_to_xml_conversion_17@comment_to_xml_conversion_18</USR><Abstract><Para> Aaa.</Para></Abstract></Variable>]
|
||||
|
@ -23,7 +23,8 @@
|
||||
//
|
||||
// RUN: xmllint --noout --relaxng %S/../../bindings/xml/comment-xml-schema.rng %S/Inputs/CommentXML/valid-typedef-01.xml
|
||||
// RUN: xmllint --noout --relaxng %S/../../bindings/xml/comment-xml-schema.rng %S/Inputs/CommentXML/valid-typedef-02.xml
|
||||
|
||||
//
|
||||
// RUN: xmllint --noout --relaxng %S/../../bindings/xml/comment-xml-schema.rng %S/Inputs/CommentXML/valid-enum-01.xml
|
||||
|
||||
// RUN: xmllint --noout --relaxng %S/../../bindings/xml/comment-xml-schema.rng %S/Inputs/CommentXML/invalid-function-01.xml 2>&1 | FileCheck %s -check-prefix=INVALID
|
||||
// RUN: xmllint --noout --relaxng %S/../../bindings/xml/comment-xml-schema.rng %S/Inputs/CommentXML/invalid-function-02.xml 2>&1 | FileCheck %s -check-prefix=INVALID
|
||||
|
@ -1065,6 +1065,10 @@ void CommentASTToXMLConverter::visitFullComment(const FullComment *C) {
|
||||
RootEndTag = "</Typedef>";
|
||||
Result << "<Typedef";
|
||||
break;
|
||||
case DeclInfo::EnumKind:
|
||||
RootEndTag = "</Enum>";
|
||||
Result << "<Enum";
|
||||
break;
|
||||
}
|
||||
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user