writeln(Range) fails on 2.058
simendsjo
simendsjo at gmail.com
Fri Feb 17 03:51:11 PST 2012
On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simendsjo at gmail.com> wrote:
> On 02/15/2012 09:33 AM, simendsjo wrote:
>> import std.array;
>> import std.stdio;
>>
>> struct S
>> {
>> string txt;
>>
>> void popFront()
>> {
>> txt.popFront();
>> }
>>
>> @property dchar front()
>> {
>> return txt.front;
>> }
>>
>> @property bool empty()
>> {
>> return txt.empty;
>> }
>> }
>>
>> void main() {
>> S s;
>> writeln(s); // range.d(295): Error: static assert "Cannot put a S into a
>> LockingTextWriter"
>> }
>>
>> I haven't read the whole changelog yet, so this might not be a bug.
>> Pretty convenient when it worked though..
>
> Seems the issue is triggered by using *char front(). Other types still
> work.
>
> import std.stdio;
>
> struct S {
> void popFront() { }
>
> @property char front() {
> return 'a';
> }
>
> @property bool empty() {
> return false;
> }
> }
>
> void main() {
> writeln(S()); // range.d(295): Error: static assert "Cannot put a
> S into a LockingTextWriter"
> }
Ping?
range.d(295): Error: static assert "Cannot put a S into a
LockingTextWriter"
format.d(1509): instantiated from here: put!(LockingTextWriter,S)
format.d(1984): instantiated from here:
formatRange!(LockingTextWriter,S,char)
format.d(2228): instantiated from here:
formatValue!(LockingTextWriter,S,char)
format.d(319): instantiated from here:
formatGeneric!(LockingTextWriter,S,char)
stdio.d(684): instantiated from here:
formattedWrite!(LockingTextWriter,char,S)
stdio.d(1563): instantiated from here: write!(S,char)
More information about the Digitalmars-d-learn
mailing list