On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simend...@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)

Reply via email to