Skip to content

Add failing tests #1034

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions breathe/renderer/sphinxrenderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -1309,11 +1309,7 @@ def visit_class(self, node: HasRefID) -> list[nodes.Node]:
# Defer to domains specific directive.

names = self.get_qualification()
# strip out any template arguments before splitting on '::', to
# avoid errors if a template specialization has qualified arguments
# (see examples/specific/cpp_ns_template_specialization)
cleaned_name, _sep, _rest = nodeDef.compoundname.partition("<")
cname = split_name(cleaned_name)
cname = split_name(nodeDef.compoundname)
if self.nesting_level == 0:
names.extend(cname)
else:
Expand Down
53 changes: 53 additions & 0 deletions tests/data/examples/test_cpp_anon/compare.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="../../docutils.css"?>
<document>
<index entries="['single',\ 'ClassWithAnonEntities\ (C++\ struct)',\ '_CPPv421ClassWithAnonEntities',\ '',\ None]"></index>
<desc classes="cpp struct" desctype="struct" domain="cpp" objtype="struct">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword classes="k">struct</desc_sig_keyword><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">ClassWithAnonEntities</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
<container classes="breathe-sectiondef" objtype="public-type">
<rubric classes="breathe-sectiondef-title">Public Types</rubric>
<index entries="['single',\ 'ClassWithAnonEntities::[anonymous]\ (C++\ enum)',\ '_CPPv4N21ClassWithAnonEntitiesUt1_4E',\ '',\ None]"></index>
<desc classes="cpp enum" desctype="enum" domain="cpp" objtype="enum">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword classes="k">enum</desc_sig_keyword><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">[anonymous]</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
<paragraph><emphasis>Values:</emphasis></paragraph>
<index entries="['single',\ 'ClassWithAnonEntities::[anonymous]::Enumerator\ (C++\ enumerator)',\ '_CPPv4N21ClassWithAnonEntitiesUt1_410EnumeratorE',\ '',\ None]"></index>
<desc classes="cpp enumerator" desctype="enumerator" domain="cpp" objtype="enumerator">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword classes="k">enumerator</desc_sig_keyword><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">Enumerator</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
</desc_content>
</desc>
</desc_content>
</desc>
</container>
<container classes="breathe-sectiondef" objtype="public-attrib">
<rubric classes="breathe-sectiondef-title">Public Members</rubric>
<index entries="['single',\ 'ClassWithAnonEntities::structMember\ (C++\ member)',\ '_CPPv4N21ClassWithAnonEntities12structMemberE',\ '',\ None]"></index>
<desc classes="cpp var" desctype="var" domain="cpp" objtype="var">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword_type classes="kt">int</desc_sig_keyword_type><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">structMember</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
</desc_content>
</desc>
<index entries="['single',\ 'ClassWithAnonEntities::[anonymous]\ (C++\ member)',\ '_CPPv4N21ClassWithAnonEntitiesUt1_1E',\ '',\ None]"></index>
<desc classes="cpp var" desctype="var" domain="cpp" objtype="var">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword classes="k">struct</desc_sig_keyword><desc_sig_space classes="w"> </desc_sig_space><reference internal="True" refid="_CPPv421ClassWithAnonEntities" reftitle="ClassWithAnonEntities"><desc_sig_name classes="n">ClassWithAnonEntities</desc_sig_name></reference><desc_sig_punctuation classes="p">::</desc_sig_punctuation><desc_sig_name classes="n">[anonymous]</desc_sig_name><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">[anonymous]</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
</desc_content>
</desc>
<index entries="['single',\ 'ClassWithAnonEntities::unionMember\ (C++\ member)',\ '_CPPv4N21ClassWithAnonEntities11unionMemberE',\ '',\ None]"></index>
<desc classes="cpp var" desctype="var" domain="cpp" objtype="var">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword_type classes="kt">int</desc_sig_keyword_type><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">unionMember</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
</desc_content>
</desc>
<index entries="['single',\ 'ClassWithAnonEntities::[anonymous]\ (C++\ member)',\ '_CPPv4N21ClassWithAnonEntitiesUt1_3E',\ '',\ None]"></index>
<desc classes="cpp var" desctype="var" domain="cpp" objtype="var">
<desc_signature classes="sig sig-object cpp"><desc_signature_line><target></target><desc_sig_keyword classes="k">union</desc_sig_keyword><desc_sig_space classes="w"> </desc_sig_space><reference internal="True" refid="_CPPv421ClassWithAnonEntities" reftitle="ClassWithAnonEntities"><desc_sig_name classes="n">ClassWithAnonEntities</desc_sig_name></reference><desc_sig_punctuation classes="p">::</desc_sig_punctuation><desc_sig_name classes="n">[anonymous]</desc_sig_name><desc_sig_space classes="w"> </desc_sig_space><desc_name classes="sig-name descname"><desc_sig_name classes="n">[anonymous]</desc_sig_name></desc_name></desc_signature_line></desc_signature>
<desc_content>
</desc_content>
</desc>
</container>
</desc_content>
</desc>
</document>
13 changes: 13 additions & 0 deletions tests/data/examples/test_cpp_anon/cpp_anon.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
struct ClassWithAnonEntities {
struct {
int structMember;
};

union {
int unionMember;
};

enum {
Enumerator
};
};
1 change: 1 addition & 0 deletions tests/data/examples/test_cpp_anon/input.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.. doxygenfile:: cpp_anon.h
Loading
Loading