http://d.puremagic.com/issues/show_bug.cgi?id=8329
--- Comment #1 from Kenji Hara k.hara...@gmail.com 2012-06-30 22:22:23 PDT ---
(In reply to comment #0)
This code fails to compile:
import std.stdio;
void main() nothrow
{
foreach(dchar c; hello world)
{}
}
giving the error
q.d(5): Error: _aApplycd1 is not nothrow
q.d(3): Error: function D main 'main' is nothrow yet may throw
if the dchar is removed, then it compiles just fine. Clearly, there's an issue
with the apply function which implements iterating over strings as characters
other than the character type of the string, since this really should be
nothrow, but it's not.
I think it should not be nothrow. Iterating string(== immutable(char)[]) as a
range of dchar runs decoding of UTF-8, and if given string has invalid UTF-8
sequence, it should throw UnicodeException (it's declared in core.exception).
On the other hand, such a transcoding iteration should be pure and @safe. It's
enough worth.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---