http://d.puremagic.com/issues/show_bug.cgi?id=8603
Summary: Member access operator doesn't always dereference the pointer it's operating on Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: tommitiss...@hotmail.com --- Comment #0 from Tommi <tommitiss...@hotmail.com> 2012-08-31 01:48:32 PDT --- struct S1 { int _value = 42; void fun() { ++_value; } } void fun(ref S1 s1) { s1._value += 1000; } void fun(ref S1* ptr1) { ++ptr1; } ///////////////////////////// struct S2 { int _value = 42; } void fun(ref S2 s2) { ++s2._value; } void fun(ref S2* ptr2) { ++ptr2; } ///////////////////////////// struct S3 { int _value = 42; } void fun(ref S3 s3) { ++s3._value; } void main() { auto ptr1 = new S1(); ptr1.fun(); // OK: calls member (*ptr1).fun() auto ptr2 = new S2(); ptr2.fun(); // WRONG: calls .fun(ptr2) // should call .fun(*ptr2) auto ptr3 = new S3(); ptr3.fun(); // ERROR: function main.fun (ref S3 s3) is // not callable using argument types (S3*) // Should call .fun(*ptr3) } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------