diff options
author | Vladimír Vondruš <mosra@centrum.cz> | 2017-11-29 17:38:13 (GMT) |
---|---|---|
committer | Vladimír Vondruš <mosra@centrum.cz> | 2017-11-29 17:40:00 (GMT) |
commit | 17bceb8f4580535de52d19e8cadf0d088f972bef (patch) | |
tree | 7dbf772e60b415efdc6982d3dcdb84d71dc9f0d1 | |
parent | 4f45bd20d4da7d40c793ec4c4c13558581e995ac (diff) | |
download | Doxygen-17bceb8f4580535de52d19e8cadf0d088f972bef.zip Doxygen-17bceb8f4580535de52d19e8cadf0d088f972bef.tar.gz Doxygen-17bceb8f4580535de52d19e8cadf0d088f972bef.tar.bz2 |
Expose underlying enum type in the XML output.
The <type> element (used for function return type and variable type) is
now reused also for underlying enum type.
C++03-style enum types that don't have the underlying type specified
have the <type> tag as well, but empty to indicate that the underlying
type is unspecified.
Added a new test case for this.
-rw-r--r-- | src/xmlgen.cpp | 7 | ||||
-rw-r--r-- | testing/018/018__def_8c.xml | 1 | ||||
-rw-r--r-- | testing/068/068__typed__enum_8cpp.xml | 25 | ||||
-rw-r--r-- | testing/068_typed_enum.cpp | 7 |
4 files changed, 40 insertions, 0 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp index 1b03c3b..3b81408 100644 --- a/src/xmlgen.cpp +++ b/src/xmlgen.cpp @@ -802,6 +802,13 @@ static void generateXMLForMember(MemberDef *md,FTextStream &ti,FTextStream &t,De t << " <argsstring>" << convertToXML(md->argsString()) << "</argsstring>" << endl; } + if (md->memberType() == MemberType_Enumeration) + { + t << " <type>"; + linkifyText(TextGeneratorXMLImpl(t),def,md->getBodyDef(),md,md->enumBaseType()); + t << "</type>" << endl; + } + t << " <name>" << convertToXML(md->name()) << "</name>" << endl; if (md->memberType() == MemberType_Property) diff --git a/testing/018/018__def_8c.xml b/testing/018/018__def_8c.xml index 8518666..8bc5c09 100644 --- a/testing/018/018__def_8c.xml +++ b/testing/018/018__def_8c.xml @@ -18,6 +18,7 @@ </sectiondef> <sectiondef kind="enum"> <memberdef kind="enum" id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130a" prot="public" static="no"> + <type/> <name>E</name> <enumvalue id="018__def_8c_1aa57b8491d1d8fc1014dd54bcf83b130aab1710e6a49014ba389d57c8753c530f4" prot="public"> <name>E1</name> diff --git a/testing/068/068__typed__enum_8cpp.xml b/testing/068/068__typed__enum_8cpp.xml new file mode 100644 index 0000000..d6f1058 --- /dev/null +++ b/testing/068/068__typed__enum_8cpp.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version=""> + <compounddef id="068__typed__enum_8cpp" kind="file" language="C++"> + <compoundname>068_typed_enum.cpp</compoundname> + <sectiondef kind="enum"> + <memberdef kind="enum" id="068__typed__enum_8cpp_1aa72902e6181db009a6a84502f81612c2" prot="public" static="no"> + <type>unsigned short</type> + <name>E</name> + <briefdescription> + <para>A strongly-typed enum. </para> + </briefdescription> + <detaileddescription> + </detaileddescription> + <inbodydescription> + </inbodydescription> + <location file="068_typed_enum.cpp" line="7" column="1" bodyfile="068_typed_enum.cpp" bodystart="7" bodyend="7"/> + </memberdef> + </sectiondef> + <briefdescription> + </briefdescription> + <detaileddescription> + </detaileddescription> + <location file="068_typed_enum.cpp"/> + </compounddef> +</doxygen> diff --git a/testing/068_typed_enum.cpp b/testing/068_typed_enum.cpp new file mode 100644 index 0000000..44c4123 --- /dev/null +++ b/testing/068_typed_enum.cpp @@ -0,0 +1,7 @@ +// objective: test underlying type and strongness for an enum +// check: 068__typed__enum_8cpp.xml + +/** \file */ + +/** @brief A strongly-typed enum */ +enum class E: unsigned short {}; |