http://d.puremagic.com/issues/show_bug.cgi?id=11069
Temtaime <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #2 from Temtaime <[email protected]> 2013-09-22 04:11:31 PDT --- Kenji, it's not a full solution. I've make test case from my project. It's too strange test case, but as it is. A.d: import C; import D; void foo() { Vector2 rsm; readWriteVariable(rsm); } void main() { } B.d: import D; import std.algorithm; void bar() { Vector2[] tc; sort(tc); } C.d: import std.traits; void readWriteVariable(T)(ref T data) { foreach(it; __traits(allMembers, T)) enum vValid = mixin(`is(FunctionTypeOf!(T.` ~ it ~ `) == function)`); } D.d: struct Matrix(T, uint _M) { int opCmp()(auto ref in Matrix b) const { return 0; } pure auto opDispatch(string s)() { enum L = s.length; Matrix!(T, L) ret; return ret; } pure Matrix normalized() { return Matrix(); } } alias Matrix!(float, 2) Vector2; Problem exists only if files compiled into single objs and then linked together. dmd A -c dmd b -c dmd c -c dmd d -c dmd a.obj b.obj c.obj d.obj Error 42: Symbol Undefined _D1D16__T6MatrixTfVi2Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVi2Z6MatrixKxS1D16__T6MatrixTfVi2Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk8Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk8Z6MatrixKxS1D16__T6MatrixTfVk8Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk6Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk6Z6MatrixKxS1D16__T6MatrixTfVk6Z6MatrixZi b.obj(b) Error 42: Symbol Undefined _D1D16__T6MatrixTfVk9Z6Matrix8__xopCmpFKxS1D16__T6Ma trixTfVk9Z6MatrixKxS1D16__T6MatrixTfVk9Z6MatrixZi If something is removed from test case, then linking is ok. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
