[Issue 15830] UFCS prevents to select a free function when the parameter has a member with the same name
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Fri Mar 25 01:51:24 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=15830
ag0aep6g at gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ag0aep6g at gmail.com
--- Comment #1 from ag0aep6g at gmail.com ---
(In reply to b2.temp from comment #0)
> Maybe DMD could detect that if the call to a member function is invalid this
> is maybe because it's a call to another function.
>
> struct Foo
> {
> uint _value;
> alias _value this;
> void test(){}
> }
>
> void test(uint param0, string param1){}
>
> void main()
> {
> Foo foo;
> foo.test(""); // want to call the free function, not the member
> }
That would create a case of hijacking [1]: When you later add a method `void
test(string)`, then the call would silently change meaning.
[1] http://dlang.org/hijack.html
--
More information about the Digitalmars-d-bugs
mailing list