www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - bug, or is this also intended?

reply deed <none none.none> writes:
Unexpected auto-concatenation of string elements:

string[] arr = ["a", "b" "c"];    // ["a", "bc"], length==2
int[] arr2   = [[1], [2] [3]];    // Error: array index 3 is out 
of bounds [2][0 .. 1]
                                   // Error: array index 3 is out 
of bounds [0..1]

dmd 2.071.2-b2
Oct 03 2016
next sibling parent ag0aep6g <anonymous example.com> writes:
On 10/03/2016 01:40 PM, deed wrote:
 Unexpected auto-concatenation of string elements:

 string[] arr = ["a", "b" "c"];    // ["a", "bc"], length==2
 int[] arr2   = [[1], [2] [3]];    // Error: array index 3 is out of
 bounds [2][0 .. 1]
                                   // Error: array index 3 is out of
 bounds [0..1]

 dmd 2.071.2-b2
Intended but on its way out. 2.072.0-b1 tells you it's deprecated.
Oct 03 2016
prev sibling parent TheFlyingFiddle <kurtyan student.chalmers.se> writes:
On Monday, 3 October 2016 at 11:40:00 UTC, deed wrote:
 Unexpected auto-concatenation of string elements:

 string[] arr = ["a", "b" "c"];    // ["a", "bc"], length==2
 int[] arr2   = [[1], [2] [3]];    // Error: array index 3 is 
 out of bounds [2][0 .. 1]
                                   // Error: array index 3 is 
 out of bounds [0..1]

 dmd 2.071.2-b2
It comes from C. In C you can write stuff like: char* foo = "Foo is good but... " "... bar is better!"; Eg static string concatenation for multiline/macros etc. Think it was implemented this way to provide better support for converting c codebases.
Oct 04 2016