[Issue 13721] New: typeof() for function return type produces peculiar error in std.datetime

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Nov 12 12:54:39 PST 2014


https://issues.dlang.org/show_bug.cgi?id=13721

          Issue ID: 13721
           Summary: typeof() for function return type produces peculiar
                    error in std.datetime
           Product: D
           Version: D2
          Hardware: All
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Phobos
          Assignee: nobody at puremagic.com
          Reporter: bugzilla at digitalmars.com

Replacing line 17372 in std.datetime from:

  @property auto length() const pure nothrow

to:

  @property typeof(end - begin) length() const pure nothrow

and adding a trivial destructor:

  public pure nothrow @safe @nogc ~this() { }

and compiling with:

  dmd src\datetime.d -unittest -main

produces the peculiar error:

std\datetime.d(17341): Error: function
std.datetime.Interval!(TimeOfDay).Interval.end need 'this' to access member end
std\datetime.d(17374):        called from here: end()
std\datetime.d(18699): Error: template instance
std.datetime.Interval!(TimeOfDay) error instantiating
std\datetime.d(17341): Error: function
std.datetime.Interval!(DateTime).Interval.end need 'this' to access member end
std\datetime.d(17374):        called from here: end()
std\datetime.d(18700): Error: template instance
std.datetime.Interval!(DateTime) error instantiating
std\datetime.d(18685): Error: pure nested function '__invariant63' cannot
access mutable data '_begin'
std\datetime.d(18685): Error: need 'this' for '_begin' of type 'TimeOfDay'
std\datetime.d(18685): Error: pure nested function '__invariant63' cannot
access mutable data '_end'
std\datetime.d(18685): Error: need 'this' for '_end' of type 'TimeOfDay'

See:
  https://github.com/D-Programming-Language/phobos/pull/2689
for more information. For some reason it only happens on Windows.

--


More information about the Digitalmars-d-bugs mailing list