www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20847] New: confusing compiler error message when compiling

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

          Issue ID: 20847
           Summary: confusing compiler error message when compiling
                    PosixTimeZone.getTimeZone
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: mingwu gmail.com

$ cat t.d
import std.datetime.timezone;

class T {
  const string NEW_YORK_TIMEZONE = "America/New_York";
  public static const auto _timeZoneInfo =
PosixTimeZone.getTimeZone(NEW_YORK_TIMEZONE);
}


/usr/include/dmd/phobos/std/file.d(1972): Error: lstat64 cannot be interpreted
at compile time, because it has no available source code




$ dmd.exe -c t.d
C:\project\dmd2\windows\bin64\..\..\src\phobos\std\file.d(1947): Error:
GetFileAttributesW cannot be interpreted at compile time, because it has no
available source code



$ ldc2 -c t.d
/home/zhou/project/ldc2-1.20.0-linux-x86_64/bin/../import/std/file.d(1962):
Error: lstat64 cannot be interpreted at compile time, because it has no
available source code



$ gdc-10 -c t.d
/usr/lib/gcc/x86_64-linux-gnu/10/include/d/std/file.d:1565:21: error: lstat64
cannot be interpreted at compile time, because it has no available source code
 1565 |         return lstat(namez, &statbuf) == 0;
      |                     ^
/usr/lib/gcc/x86_64-linux-gnu/10/include/d/std/file.d:1524:22: note: called
from here: existsImpl(((Res __tmpfordtor2620 = tempCString(name);) ,
__tmpfordtor2620).ptr())
 1524 |     return existsImpl(name.tempCString!FSChar());
      |                      ^
/usr/lib/gcc/x86_64-linux-gnu/10/include/d/std/datetime/timezone.d:1957:37:
note: called from here: exists(tzDatabaseDir)
 1957 |         enforce(tzDatabaseDir.exists(), new
DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
      |                                     ^
/usr/lib/gcc/x86_64-linux-gnu/10/include/d/std/datetime/timezone.d:1957:16:
note: called from here: enforce(exists(tzDatabaseDir), delegate Throwable() =>
new TimeException(format("Directory %s does not exist.", tzDatabaseDir),
"/usr/lib/gcc/x86_64-linux-gnu/10/include/d/std/datetime/timezone.d", 1957LU,
null))
 1957 |         enforce(tzDatabaseDir.exists(), new
DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
      |                ^
t.d:5:69: note: called from here: getTimeZone(NEW_YORK_TIMEZONE,
"/usr/share/zoneinfo/")
    5 |   public static const auto _timeZoneInfo =
PosixTimeZone.getTimeZone(NEW_YORK_TIMEZONE);
      |                                                                     ^

--
May 19 2020