Skip to content

Commit 52c934d

Browse files
committed
overloads support return type
#feat
1 parent b1676a5 commit 52c934d

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

include/mrdocs/Metadata/Info/Overloads.hpp

+3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ struct OverloadsInfo final
3030
/// The members of the overload set.
3131
std::vector<SymbolID> Members;
3232

33+
/// Info about the return type of this function.
34+
Polymorphic<TypeInfo> ReturnType;
35+
3336
//--------------------------------------------
3437

3538
explicit OverloadsInfo(SymbolID const& ID) noexcept

src/lib/Metadata/Info/Overloads.cpp

+5
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,15 @@ addMember(OverloadsInfo& I, FunctionInfo const& Member)
5151
I.Extraction = Member.Extraction;
5252
I.Class = Member.Class;
5353
I.OverloadedOperator = Member.OverloadedOperator;
54+
I.ReturnType = Member.ReturnType;
5455
}
5556
else
5657
{
5758
I.Extraction = leastSpecific(I.Extraction, Member.Extraction);
59+
if (I.ReturnType != Member.ReturnType)
60+
{
61+
I.ReturnType = {};
62+
}
5863
}
5964
merge(dynamic_cast<SourceInfo&>(I), dynamic_cast<SourceInfo const&>(Member));
6065
I.Members.push_back(Member.id);

0 commit comments

Comments
 (0)