[Issue 20023] Separate compilation breaks dip1000 / dip1008 @safety

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Mar 14 07:56:01 UTC 2020


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

Walter Bright <bugzilla at digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla at digitalmars.com
         Resolution|---                         |WONTFIX

--- Comment #1 from Walter Bright <bugzilla at digitalmars.com> ---
This is explained because some of the checks are only done for modules that are
present on the command line. You can see this in the line:

    if (sc._module && sc._module.isRoot() &&

https://github.com/dlang/dmd/blob/master/src/dmd/escape.d#L1205

You can find the isRoot() check in several places.

This is done to ease the transition to dip1000 by not checking code that is
only imported, presumably from 3rd party libraries which would be impractical
for the user to change himself.

Once dip1000 becomes thoroughly propagated to old libraries, this can be
tightened up, but not now.

--


More information about the Digitalmars-d-bugs mailing list