[Issue 9651] Returning a newly-created slice by reference
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Mar 5 12:05:27 PST 2013
http://d.puremagic.com/issues/show_bug.cgi?id=9651
Ivan Kazmenko <gassa at mail.ru> changed:
What |Removed |Added
----------------------------------------------------------------------------
See Also| |http://d.puremagic.com/issu
| |es/show_bug.cgi?id=4451
--- Comment #1 from Ivan Kazmenko <gassa at mail.ru> 2013-03-05 12:05:11 PST ---
Interestingly, a local array and a delegate do generate a warning. However,
the warning says "escaping reference to local variable a" which is not true:
the problem lies in escaping reference to a local unnamed slice, not variable
"a" which is legally visible to the caller. The non-ref versions compile and
run without problems.
Example 3 (local fixed length array):
-----
import std.stdio;
void main ()
{
int [1] a;
ref int [] f ()
{
return a [0..1];
}
auto s = f ();
writeln (s);
}
-----
Example 4 (local variable length array):
-----
import std.stdio;
void main ()
{
int [] a;
ref int [] f ()
{
return a [0..1];
}
a = new int [1];
auto s = f ();
writeln (s);
auto t = f ();
writeln (t);
}
-----
--
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