[Issue 7492] [CTFE] Error at assign to immutable character array
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Jan 20 09:09:14 PST 2015
https://issues.dlang.org/show_bug.cgi?id=7492
Kenji Hara <k.hara.pg at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |INVALID
--- Comment #2 from Kenji Hara <k.hara.pg at gmail.com> ---
(In reply to Denis Shelomovskij from comment #0)
> ---
> auto f() { return new char[1]; }
>
> immutable s = f(); // error, works with non-character arrays
> ---
> Error: cannot implicitly convert expression ("\xff") of type char[] to
> immutable(char[])
The function returns char[]. In D type system, char[] to immutable(char[])
conversion is not allowed.
If you annotate the function f with pure attribute, f() will return an unique
array so compiler will allow the conversion.
Anyway, this is not CTFE problem. The code is trying to violate D type system,
and compiler reports the error correctly.
--
More information about the Digitalmars-d-bugs
mailing list