/usr/include/d/std/conv.d(244): Error: template std.conv.toImpl(T,S) if (isImplicitlyConvertible!(S,T)) toImpl(T,S) if (isImplicitlyConvertible!(S,T)) matches more than one template declaration, /usr/include/d/std/conv.d(932):toImpl(T,S) if (is(S : Object) && isSomeString!(T)) and /usr/include/d/std/conv.d(965):toImpl(T,S) if (is(S == struct) && is(typeof(&S.init.toString)) && isSomeString!(T)) ----- import std.conv : to; class Bar {} struct Foo { Bar bar; alias bar this; static Foo c() { Foo ret; ret.bar = new Bar(); return ret; } } void main() { Foo foo = Foo.c(); to!string(foo); } -----
https://github.com/D-Programming-Language/phobos/pull/482
Commits pushed to master at https://github.com/D-Programming-Language/phobos https://github.com/D-Programming-Language/phobos/commit/30d9405ad48cbaef934af897e85ff8514a33e579 added tests for bug 7660 https://github.com/D-Programming-Language/phobos/commit/803aa7ccb04dae273169b70fbff4ecdcd2ada884 Merge pull request #482 from Dav1dde/conv2 Bug 7660, incorrect toImpl overload for struct with alias this to class