[Issue 8408] Purity calculation should be improved
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Dec 10 19:39:08 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=8408
--- Comment #11 from Kenji Hara <k.hara.pg at gmail.com> 2012-12-10 19:39:00 PST ---
(In reply to comment #10)
> (In reply to comment #8)
> > (In reply to comment #6)
> > I'm not sure that this should be allowed.
> > ...
>
> Why not? It is known at the call site that anything foo1 will return is newly
> allocated. Strong or weak purity is irrelevant.
Your argument had be true.
I had re-read issue 5081, and could be believed that between the purity level
(strong, constant, weak) and the conversion possibility to immutable of
returned value are irrelevant.
From: http://d.puremagic.com/issues/show_bug.cgi?id=5081#c2
> Note actually that as long as you can verify the return value did not come
> directly from the parameters, it's also possible to implicitly cast to
> immutable.
>
> For example:
>
> pure T[] mydup(T)(const(T)[] param) {...}
>
> It's provable that the return value did not come from param (without a cast),
> because you can't implicitly cast param to T[]. So you can cast the result to
> immutable, >>>>even if param began as mutable<<<<.
The last sentence describes the ideal behavior.
Thanks a lot!
--
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