Thread overview
[Issue 9210] New: [2.061 beta] Import cycle causes unpredictable compile errors
Dec 26, 2012
Sönke Ludwig
Dec 26, 2012
Sönke Ludwig
Dec 27, 2012
Kenji Hara
Dec 27, 2012
Walter Bright
Dec 27, 2012
Kenji Hara
Dec 27, 2012
Walter Bright
December 26, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210

           Summary: [2.061 beta] Import cycle causes unpredictable compile
                    errors
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: sludwig@outerproduct.org


--- Comment #0 from Sönke Ludwig <sludwig@outerproduct.org> 2012-12-26 13:26:51 PST ---
Created an attachment (id=1173)
Reproduction case

Compiling the following three files using `dmd -c a.d` causes the compiler to fail compiling code in std.complex:

a.d
---
import b;
interface A {}
---

b.d
---
import c;
import std.datetime;
interface B : A {}
---

c.d
---
import a;
interface C : A {}
---

output:
---
C:\D\dmd2\windows\bin\..\..\src\phobos\std\complex.d(678): Error: struct
std.complex.Complex does not match any template declaration
C:\D\dmd2\windows\bin\..\..\src\phobos\std\complex.d(678): Error:
Complex!(real) is used as a type
[...]
---

The error occurs for different configurations of imports and triggers errors in completely different locations. Does not occur using DMD 2.060.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 26, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210



--- Comment #1 from Sönke Ludwig <sludwig@outerproduct.org> 2012-12-26 13:34:05 PST ---
Just noticed that `b.d` is missing an `import a;`. This does not influence the error, though. Note that there is absolutely no connection to the user's code, so this is hard to track down.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 27, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210



--- Comment #2 from Kenji Hara <k.hara.pg@gmail.com> 2012-12-26 21:13:07 PST ---
This is a compiler regression.
The issue occurs also with the combination 2.061alpha dmd + 2.060release
Phobos.

A dmd commit which the issue introduced is: https://github.com/D-Programming-Language/dmd/commit/c34c5fb0e67f7c48bb683ef409378fde6db33088

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 27, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> 2012-12-26 21:15:25 PST ---
If there isn't an obvious fix, I suggest reverting that fix, reopening its corresponding bug report, and add this example to the test suite.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 27, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic, pull


--- Comment #4 from Kenji Hara <k.hara.pg@gmail.com> 2012-12-26 23:08:27 PST ---
(In reply to comment #3)
> If there isn't an obvious fix, I suggest reverting that fix, reopening its corresponding bug report, and add this example to the test suite.

I made an obvious fix. https://github.com/D-Programming-Language/dmd/pull/1412

This is a diagnostic bug. The fake errors were made by the incompletion of Phobos template instantiating.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 27, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210



--- Comment #5 from github-bugzilla@puremagic.com 2012-12-27 01:20:52 PST ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/446d11da15197117f6e2acd8853accd7c6d22b54 fix Issue 9210 - [2.061 beta] Import cycle causes unpredictable compile errors

https://github.com/D-Programming-Language/dmd/commit/4633b1336ba0aca1c260bcfd87fabb24f0d06692 Merge pull request #1412 from 9rnsr/fix9210

Issue 9210 - [2.061 beta] Import cycle causes unpredictable compile errors

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 27, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
December 28, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=9210



--- Comment #6 from github-bugzilla@puremagic.com 2012-12-28 11:11:22 PST ---
Commit pushed to staging at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/094f8f7687ea21df4670efd33338e6c69478a019 Merge pull request #1412 from 9rnsr/fix9210

Issue 9210 - [2.061 beta] Import cycle causes unpredictable compile errors

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------