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

           Summary: automatic joining of adjacent strings is bad
           Product: D
           Version: 2.040
          Platform: All
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nob...@puremagic.com
        ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2010-02-18 12:40:31 PST ---
import std.stdio;
void main() {
    string[] a = ["foo", "bar" "baz", "spam"];
    writeln(a);
}

This code prints:
foo barbaz spam

But probably the programmer meant to create an array with 4 strings.
D has the ~ concat operator, so to prevent possible programming bugs it's
better to remove the implicit concat of strings separated by whitespace.

Everywhere the programmer wants to concat strings the explicit concat operator
can be used:

string s = "this is a very long string that doesn't fit in" ~
           " a line";

The "Python Zen" has a rule that says:

Explicit is better than implicit.

The compiler can optimize the concat away at compile time.

C code ported to D that doesn't put a ~ just raises a compile time error that's
easy to understand and fix.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to