Thread overview
build problem with xfbuild
Jun 10, 2010
Richard Webb
Jun 10, 2010
Trass3r
Jun 11, 2010
torhu
June 10, 2010
If i try to use DMD 2.047 and xfbuild to compile a file which just contains

module arraytest;
import std.array;

I get the error:

F:\development\DTesting\dmd2\windows\bin\..\..\src\phobos\std\format.d(1882):
Error: template std.array.Appender!(string).Appender.put(U) if
(isImplicitlyConvertible!(U,T) || isSomeChar!(T) && isSomeChar!(U)) does not
match any function template declaration


F:\development\DTesting\dmd2\windows\bin\..\..\src\phobos\std\format.d(1882):
Error: template std.array.Appender!(string).Appender.put(U) if
(isImplicitlyConvertible!(U,T) || isSomeChar!(T) && isSomeChar!(U)) cannot
deduce template function from argument types !()(char[])


I don't have a simple repro just using DMD, but the error seems to originate from line 695 of array.d (at least, commenting it out or changing it to

       put!(Unqual!T[])(encoded[0 .. len]);

allows it to compile.
Anyone got any ideas?

Thanks,
Richard Webb
June 10, 2010
I also had this error along with some strange sqrt can't be evaluated at compile-time stuff.

Compiling manually works fine, but xfbuild also passes all phobos files to dmd while building. So there probably is some strange bug if you pass the files that way.
June 11, 2010
On 11.06.2010 00:46, Richard Webb wrote:
> If i try to use DMD 2.047 and xfbuild to compile a file which just contains
>
> module arraytest;
> import std.array;
>
> I get the error:
>
> F:\development\DTesting\dmd2\windows\bin\..\..\src\phobos\std\format.d(1882):
> Error: template std.array.Appender!(string).Appender.put(U) if
> (isImplicitlyConvertible!(U,T) || isSomeChar!(T)&&  isSomeChar!(U)) does not
> match any function template declaration
>
>
> F:\development\DTesting\dmd2\windows\bin\..\..\src\phobos\std\format.d(1882):
> Error: template std.array.Appender!(string).Appender.put(U) if
> (isImplicitlyConvertible!(U,T) || isSomeChar!(T)&&  isSomeChar!(U)) cannot
> deduce template function from argument types !()(char[])
>

Try excluding phobos from the build with +xstd +xcore, at least the first one.