[Issue 4968] New: inout is sticky to function return type
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Oct 1 14:57:46 PDT 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4968
Summary: inout is sticky to function return type
Product: D
Version: D2
Platform: Other
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: tomash.brechko at gmail.com
--- Comment #0 from Tomash Brechko <tomash.brechko at gmail.com> 2010-10-01 14:57:27 PDT ---
Call to writeln(f(i)) below won't compile because dmd 2.049 thinks f() returns
"inout(int)", so "void writeln(T...)(T args)" expands to "void
writeln(inout(int)...(inout(int) args)", and inout parameter requires inout
return type. Rewriting "void" as "inout(void)" helps, but obviously is wrong.
import std.stdio;
inout(int)
f(inout int i)
{
return i;
}
void
main()
{
int i;
writeln(typeof(f(i)).stringof); // Outputs "inout(int)", not "int".
int j = f(i);
writeln(i); // Works OK :).
writeln(f(i)); // Won't compile :(.
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list