Bug 2530 – "Previous definition different" error on using template class with inner struct

Status
RESOLVED
Resolution
DUPLICATE
Severity
regression
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2008-12-21T08:16:00Z
Last change time
2015-06-09T01:20:50Z
Keywords
link-failure
Assigned to
nobody
Creator
2korden

Comments

Comment #0 by 2korden — 2008-12-21T08:16:01Z
Here is a cut-down code sample that reproduces the error: // File A.d module A; import B; // File B.d module B; import A; class T(int i) { struct Inner { } } class B { T!(0) t; } void main() { } compilation options: # dmd A.d -c # dmd B.d -c # dmd A.obj B.obj Error 1: Previous Definition Different : _D1B9__T1TVi0Z1T5Inner6__initZ Note that this is a regression since D1.037/D2.021 used to compile this code just fine. Both D1.038 and D2.022 are affected. Could it be related to this one: http://d.puremagic.com/issues/show_bug.cgi?id=2500 (fixed recently)?
Comment #1 by wbaxter — 2008-12-22T02:35:05Z
Maybe related to bug 1629 too: http://d.puremagic.com/issues/show_bug.cgi?id=1629 (error message is the same anyway)
Comment #2 by clugdbug — 2009-09-04T07:03:36Z
This was a duplicate of bug 1629 and was fixed in DMD1.041. *** This issue has been marked as a duplicate of issue 1629 ***