September 23, 2004 unittest can't access private data in parametrized class, also link error | ||||
---|---|---|---|---|
| ||||
I'm seeing two errors with parametrized classes and/or unittests. Put this in a single module and try compiling (I used "dmd -unittest -c test.d") class X(Y) { private void foo() { } } unittest { X!(int) x = new X!(int); x.foo(); } you'll get "class X member foo is not accessible" I'm also getting a linking error if the parametrized class is instantiated twice with the same types in different object files: test.d: module test; class X(Y) { void foo() { } } unittest { X!(int) x = new X!(int); } test2.d: import test; int main() { X!(int) t = new X!(int); return 0; } running dmd -c -unittest test.d dmd test2.d -unittest test.obj results in OPTLINK (R) for Win32 Release 7.50B1 Copyright (C) Digital Mars 1989 - 2001 All Rights Reserved test.obj(test) Offset 002F4H Record Type 00C3 Error 1: Previous Definition Different : _D4test3X_i1X3fooFZv --- errorlevel 1 |
Copyright © 1999-2021 by the D Language Foundation