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)?