[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