Thread overview |
---|
February 15, 2012 writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
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.. |
February 15, 2012 Re: writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | 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"
}
|
February 17, 2012 Re: writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simendsjo@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) |
February 17, 2012 Re: writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | On Fri, 17 Feb 2012 12:51:11 +0100, simendsjo <simendsjo@gmail.com> wrote:
> On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simendsjo@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?
|
February 17, 2012 Re: writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
Posted in reply to simendsjo | On 02/17/2012 12:58 PM, simendsjo wrote:
> On Fri, 17 Feb 2012 12:51:11 +0100, simendsjo <simendsjo@gmail.com> wrote:
>
>> On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simendsjo@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?
The LockingTextWriter thing is a regression, the #{overlap <typenames here>} is part of a (possibly unlisted?) bugfix by Kenji Hara.
|
February 17, 2012 Re: writeln(Range) fails on 2.058 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Timon Gehr | On Fri, 17 Feb 2012 14:44:15 +0100, Timon Gehr <timon.gehr@gmx.ch> wrote: > On 02/17/2012 12:58 PM, simendsjo wrote: >> On Fri, 17 Feb 2012 12:51:11 +0100, simendsjo <simendsjo@gmail.com> wrote: >> >>> On Wed, 15 Feb 2012 11:10:45 +0100, simendsjo <simendsjo@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? > > The LockingTextWriter thing is a regression, the #{overlap <typenames here>} is part of a (possibly unlisted?) bugfix by Kenji Hara. But I liked that it spit out my union... :| http://d.puremagic.com/issues/show_bug.cgi?id=7531 |
Copyright © 1999-2021 by the D Language Foundation