Skip to content

Commit 1baa2ba

Browse files
committed
don't enter an infinite loop
1 parent cbf2747 commit 1baa2ba

File tree

3 files changed

+140
-3
lines changed

3 files changed

+140
-3
lines changed

source/Metadata/Javadoc.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,10 @@ postProcess()
8989
else if(it->kind == Kind::returns)
9090
{
9191
if(! returns_)
92-
{
9392
returns_ = std::make_shared<Returns>(
9493
std::move(static_cast<Returns &>(*it)));
95-
it = blocks_.erase(it);
96-
}
94+
// unconditionally consume the Returns element
95+
it = blocks_.erase(it);
9796
// KRYSTIAN TODO: emit a warning for duplicate @returns
9897
continue;
9998
}
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/** f0 brief
2+
@returns int
3+
@returns int
4+
*/
5+
int f0() { return 0; }
6+
7+
/** f1 brief
8+
@returns int
9+
@returns bool
10+
*/
11+
int f1() { return 0; }
12+
13+
/** g0 brief
14+
@param a one
15+
@param a one
16+
*/
17+
void g0(int a) { }
18+
19+
/** g1 brief
20+
@param a one
21+
@param b two
22+
*/
23+
void g1(int a) { }
24+
25+
/** h0 brief
26+
@tparam T one
27+
@tparam T one
28+
*/
29+
template<typename T>
30+
void h0() { }
31+
32+
/** h1 brief
33+
@tparam T one
34+
@tparam U two
35+
*/
36+
template<typename T>
37+
void h1() { }
38+
+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<mrdox xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdox/raw/develop/mrdox.rnc">
4+
<namespace name="">
5+
<function name="f1" id="CnO51rIKTzfiVKHkR3TdPa0eo+8=">
6+
<file path="duplicate-jdoc.cpp" line="11" class="def"/>
7+
<return type="int"/>
8+
<doc>
9+
<brief>
10+
<text>f1 brief</text>
11+
</brief>
12+
<returns>
13+
<text>int</text>
14+
</returns>
15+
<returns>
16+
<text>bool</text>
17+
</returns>
18+
</doc>
19+
</function>
20+
<template>
21+
<tparam name="T" class="type"/>
22+
<function name="h0" id="GUlieEk6E+t8qLpALj3XrWv0CGw=">
23+
<file path="duplicate-jdoc.cpp" line="30" class="def"/>
24+
<doc>
25+
<brief>
26+
<text>h0 brief</text>
27+
</brief>
28+
<tparam name="T">
29+
<text>one</text>
30+
</tparam>
31+
<tparam name="T">
32+
<text>one</text>
33+
</tparam>
34+
</doc>
35+
</function>
36+
</template>
37+
<function name="g0" id="Vn88rrW6JgrUc7j/24MUTRnpkRg=">
38+
<file path="duplicate-jdoc.cpp" line="17" class="def"/>
39+
<param name="a" type="int"/>
40+
<doc>
41+
<brief>
42+
<text>g0 brief</text>
43+
</brief>
44+
<param name="a">
45+
<text>one</text>
46+
</param>
47+
<param name="a">
48+
<text>one</text>
49+
</param>
50+
</doc>
51+
</function>
52+
<function name="f0" id="e1UQQek5v3C9OClW5cGf57XvwQo=">
53+
<file path="duplicate-jdoc.cpp" line="5" class="def"/>
54+
<return type="int"/>
55+
<doc>
56+
<brief>
57+
<text>f0 brief</text>
58+
</brief>
59+
<returns>
60+
<text>int</text>
61+
</returns>
62+
<returns>
63+
<text>int</text>
64+
</returns>
65+
</doc>
66+
</function>
67+
<template>
68+
<tparam name="T" class="type"/>
69+
<function name="h1" id="q8fclJU+n2M3XqifIjVL9vT9fKQ=">
70+
<file path="duplicate-jdoc.cpp" line="37" class="def"/>
71+
<doc>
72+
<brief>
73+
<text>h1 brief</text>
74+
</brief>
75+
<tparam name="T">
76+
<text>one</text>
77+
</tparam>
78+
<tparam name="U">
79+
<text>two</text>
80+
</tparam>
81+
</doc>
82+
</function>
83+
</template>
84+
<function name="g1" id="99zzvQbBwXKh7ewapNRMnAKND3I=">
85+
<file path="duplicate-jdoc.cpp" line="23" class="def"/>
86+
<param name="a" type="int"/>
87+
<doc>
88+
<brief>
89+
<text>g1 brief</text>
90+
</brief>
91+
<param name="a">
92+
<text>one</text>
93+
</param>
94+
<param name="b">
95+
<text>two</text>
96+
</param>
97+
</doc>
98+
</function>
99+
</namespace>
100+
</mrdox>

0 commit comments

Comments
 (0)