[Issue 3235] [tdpl] Function literals must be deduced as "function" or "delegate"
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sun Dec 18 20:05:44 PST 2011
http://d.puremagic.com/issues/show_bug.cgi?id=3235
Andrei Alexandrescu <andrei at metalanguage.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|TDPL: Function literals |[tdpl] Function literals
|must be deduced as |must be deduced as
|"function" or "delegate" |"function" or "delegate"
--- Comment #6 from Andrei Alexandrescu <andrei at metalanguage.com> 2011-12-18 20:05:41 PST ---
The following example is in TDPL:
unittest
{
auto f = (int i) {};
assert(is(f == function));
}
The example fails to compile (it should). Also the following example should
work:
unittest
{
int a;
auto f = (int i) { a = i; };
assert(is(f == delegate));
}
The compiler should automatically infer function or delegate type depending on
the literal's use of local state. The argument against it - people change a
detail in the body of the function and its type changes - is non sequitur.
Changing a literal from 10 to 10.0 also changes its type. Please fix.
--
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