Thread overview |
---|
January 27, 2009 [Issue 2621] New: ref binds to rvalues of user-defined types | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=2621 Summary: ref binds to rvalues of user-defined types Product: D Version: unspecified Platform: PC OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla@digitalmars.com ReportedBy: andrei@metalanguage.com struct Struct {} alias Struct T; //alias int T; T fun() { return T(); } void gun(ref T) {} void main() { gun(fun); } The code compiles and it shouldn't. ref should never bind to rvalues. Currently indeed it doesn't bind to rvalues of built-in type (e.g. if the alias above is switched from Struct to int the code won't compile). -- |
January 27, 2009 [Issue 2621] ref binds to rvalues of user-defined types | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2621 ------- Comment #1 from andrei@metalanguage.com 2009-01-27 09:48 ------- (In reply to comment #0) > struct Struct {} > alias Struct T; > //alias int T; > > T fun() { return T(); } > void gun(ref T) {} > void main() > { > gun(fun); > } > > The code compiles and it shouldn't. ref should never bind to rvalues. Currently indeed it doesn't bind to rvalues of built-in type (e.g. if the alias above is switched from Struct to int the code won't compile). > Furthermore, adding this overload should make the code work: void gun(T) {} Currently adding the overload results in the error message: function test.gun called with argument types: (Struct) matches both: test.gun(ref Struct _param_0) and: test.gun(Struct _param_0) -- |
March 11, 2009 [Issue 2621] ref binds to rvalues of user-defined types | ||||
---|---|---|---|---|
| ||||
Posted in reply to d-bugmail | http://d.puremagic.com/issues/show_bug.cgi?id=2621 bugzilla@digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #2 from bugzilla@digitalmars.com 2009-03-11 14:57 ------- Fixed dmd 2.026 -- |
Copyright © 1999-2021 by the D Language Foundation