> So I think this should compile:
> 
> char[] foo(string s1, string s2) pure {
>     return s1 ~ s2;
> }
> void main() {}

The situation is a bit more complex:

char[] foo(immutable string s1, immutable string s2) pure {
    return s1 ~ s2;
}
void main() {
    string t1 = "foo";
    string t2 = "bar";
    auto t3 = t1 ~ t2;
    static assert(is(typeof(t3) == string));
}


So there I was asking for the druntime array concat to return something 
immutable that is implicitly cast-able to mutable. It's kind of the opposite of 
the recently introduced rule for strongly pure functions... So I don't know if 
this is possible.


> And regarding toStringz(), this modified version seems to work as desired:

http://d.puremagic.com/issues/show_bug.cgi?id=6878

Bye,
bearophile

Reply via email to