www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - std.range.chain bug?

reply "Jack Applegame" <japplegame gmail.com> writes:
This isn't compiles. Bug?

import std.range;
class Foo {}
void main() {
	immutable(Foo)[] a;
	immutable(Foo)[] b;
	auto c = chain(a, b).length;
}

http://dpaste.dzfl.pl/71272a10
Nov 25 2013
next sibling parent "Jack Applegame" <japplegame gmail.com> writes:
*doesn't compile
Nov 25 2013
prev sibling next sibling parent reply "monarch_dodra" <monarchdodra gmail.com> writes:
On Monday, 25 November 2013 at 19:38:44 UTC, Jack Applegame wrote:
 This isn't compiles. Bug?
Yes, and a trivially trivial bug at that. File it and I'll fix it.
Nov 25 2013
parent "Jack Applegame" <japplegame gmail.com> writes:
On Monday, 25 November 2013 at 20:54:21 UTC, monarch_dodra wrote:
 Yes, and a trivially trivial bug at that. File it and I'll fix 
 it.
https://d.puremagic.com/issues/show_bug.cgi?id=11607
Nov 26 2013
prev sibling parent reply "Jesse Phillips" <Jesse.K.Phillips+D gmail.com> writes:
On Monday, 25 November 2013 at 19:38:44 UTC, Jack Applegame wrote:
 This isn't compiles. Bug?

 import std.range;
 class Foo {}
 void main() {
 	immutable(Foo)[] a;
 	immutable(Foo)[] b;
 	auto c = chain(a, b).length;
 }

 http://dpaste.dzfl.pl/71272a10
Seems like a bug to me. If Foo where a string I'd expect it to fail, but what you have looks reasonable.
Nov 25 2013
parent reply "monarch_dodra" <monarchdodra gmail.com> writes:
On Monday, 25 November 2013 at 21:04:43 UTC, Jesse Phillips wrote:
 On Monday, 25 November 2013 at 19:38:44 UTC, Jack Applegame 
 wrote:
 This isn't compiles. Bug?

 import std.range;
 class Foo {}
 void main() {
 	immutable(Foo)[] a;
 	immutable(Foo)[] b;
 	auto c = chain(a, b).length;
 }

 http://dpaste.dzfl.pl/71272a10
Seems like a bug to me. If Foo where a string I'd expect it to fail, but what you have looks reasonable.
Really? Why? As a matter of fact, it *works* with string...
Nov 25 2013
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Monday, November 25, 2013 22:08:37 monarch_dodra wrote:
 On Monday, 25 November 2013 at 21:04:43 UTC, Jesse Phillips wrote:
 On Monday, 25 November 2013 at 19:38:44 UTC, Jack Applegame
 
 wrote:
 This isn't compiles. Bug?
 
 import std.range;
 class Foo {}
 void main() {
 
 immutable(Foo)[] a;
 immutable(Foo)[] b;
 auto c = chain(a, b).length;
 
 }
 
 http://dpaste.dzfl.pl/71272a10
Seems like a bug to me. If Foo where a string I'd expect it to fail, but what you have looks reasonable.
Really? Why? As a matter of fact, it *works* with string...
What works with string? chain(a, b).length had better not work if either a or b is a string, because hasLength is false for narrow strings. - Jonathan M Davis
Nov 25 2013
parent reply "monarch_dodra" <monarchdodra gmail.com> writes:
On Monday, 25 November 2013 at 23:44:26 UTC, Jonathan M Davis 
wrote:
 On Monday, November 25, 2013 22:08:37 monarch_dodra wrote:
 On Monday, 25 November 2013 at 21:04:43 UTC, Jesse Phillips 
 wrote:
 On Monday, 25 November 2013 at 19:38:44 UTC, Jack Applegame
 
 wrote:
 This isn't compiles. Bug?
 
 import std.range;
 class Foo {}
 void main() {
 
 immutable(Foo)[] a;
 immutable(Foo)[] b;
 auto c = chain(a, b).length;
 
 }
 
 http://dpaste.dzfl.pl/71272a10
Seems like a bug to me. If Foo where a string I'd expect it to fail, but what you have looks reasonable.
Really? Why? As a matter of fact, it *works* with string...
What works with string? chain(a, b).length had better not work if either a or b is a string, because hasLength is false for narrow strings. - Jonathan M Davis
Right, but he said "Foo": import std.range; alias Foo = string; void main() { immutable(Foo)[] a; immutable(Foo)[] b; auto c = chain(a, b).length; }
Nov 25 2013
parent "Jesse Phillips" <Jesse.K.Phillips+D gmail.com> writes:
On Tuesday, 26 November 2013 at 06:55:40 UTC, monarch_dodra wrote:
 Right, but he said "Foo":

 import std.range;
 alias Foo = string;
 void main() {
 	immutable(Foo)[] a;
 	immutable(Foo)[] b;
 	auto c = chain(a, b).length;
 }
Yes, my mistake, array of string should be fine. I was trying to think of a situation it shouldn't work, identified it wrong.
Nov 26 2013