[Issue 15819] array(x) is ok but not x.array, giving contradicting error
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon Mar 21 23:52:39 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=15819
--- Comment #2 from Timothee Cour <timothee.cour2 at gmail.com> ---
reduced case:
the issue goes away if we comment "private import std.array;"
module bugs.bug_D20160321T233851;
/+
dmd -unittest -main -run bugs/bug_D20160321T233851.d
+/
import std.traits : isIterable, isNarrowString;
import std.range : isInfinite,isInputRange;
import std.array;
unittest {
EmitResult temp;
alias Range = typeof(temp);
static assert(isInputRange!Range);
static assert(isIterable!Range && !isNarrowString!Range &&
!isInfinite!Range);
// BUG:error: cannot resolve type for temp.array(Range)(Range r) if
(isIterable!Range && !isNarrowString!Range && !isInfinite!Range)
static assert(!is(typeof(temp.array)));
static assert(is(typeof(array(temp))));
}
private struct EmitResult {
// comment this make things "normal"
private import std.array;
@property bool empty() {
return true;
}
void popFront() {
}
@property int front() {
return 0;
}
}
--
More information about the Digitalmars-d-bugs
mailing list