|
|
|
@ -7,30 +7,20 @@ namespace CppSharp.Passes |
|
|
|
{ |
|
|
|
{ |
|
|
|
/// <summary>
|
|
|
|
/// <summary>
|
|
|
|
/// Checks for ambiguous functions/method declarations.
|
|
|
|
/// Checks for ambiguous functions/method declarations.
|
|
|
|
/// <para/>
|
|
|
|
///
|
|
|
|
/// Example:
|
|
|
|
/// Example:
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// struct S
|
|
|
|
/// struct S
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// {
|
|
|
|
/// {
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Foo(int a, int b = 0);
|
|
|
|
/// void Foo(int a, int b = 0);
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Foo(int a);
|
|
|
|
/// void Foo(int a);
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Bar();
|
|
|
|
/// void Bar();
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Bar() const;
|
|
|
|
/// void Bar() const;
|
|
|
|
///
|
|
|
|
///
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Qux(int& i);
|
|
|
|
/// void Qux(int& i);
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Qux(int&& i);
|
|
|
|
/// void Qux(int&& i);
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// void Qux(const int& i);
|
|
|
|
/// void Qux(const int& i);
|
|
|
|
/// <para/>
|
|
|
|
|
|
|
|
/// };
|
|
|
|
/// };
|
|
|
|
/// <para/>
|
|
|
|
///
|
|
|
|
/// When we call Foo(0) the compiler will not know which call we want and
|
|
|
|
/// When we call Foo(0) the compiler will not know which call we want and
|
|
|
|
/// will error out so we need to detect this and either ignore the methods
|
|
|
|
/// will error out so we need to detect this and either ignore the methods
|
|
|
|
/// or flag them such that the generator can explicitly disambiguate when
|
|
|
|
/// or flag them such that the generator can explicitly disambiguate when
|
|
|
|
|