writeln(Range) fails on 2.058
simendsjo
simendsjo at gmail.com
Fri Feb 17 03:58:14 PST 2012
On Fri, 17 Feb 2012 12:51:11 +0100, simendsjo <simendsjo at gmail.com> wrote:
> 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)
Ok, the changelog doesn't state any changes to formating, but other stuff
has changed too.
When printing unions, i get #{overlap <typenames here>} rather than the
actual union values as in 2.057.
Should I report these as regressions as the changelog doesn't mention them?
More information about the Digitalmars-d-learn
mailing list