Basically, std.conv.parse!(string, string) expects the string to be in the form of an array of chars: //---- import std.conv; void main() { string s1 = `[['h', 'e', 'l', 'l', 'o'], ['w', 'o', 'r', 'l', 'd']]`; string s2 = `["hello", "world"]`; string s3 = `['h', 'e', 'l', 'l', 'o']`; string s4 = `"hello"`; auto ss1 = parse!(string[])(s1); auto ss2 = parse!(string[])(s2); auto ss3 = parse!(string )(s3); auto ss4 = parse!(string )(s4); //Can't parse string: "[" is missing return; } //---- The irony though is that if you place the string inside an array (s1 and s2), then conv will actually support both forms of parse.
Hmm.. Can this be fixed without breaking code?
(In reply to Andrej Mitrovic from comment #1) > Hmm.. Can this be fixed without breaking code? All bug fixes break codes that rely on that bug...
THIS ISSUE HAS BEEN MOVED TO GITHUB https://github.com/dlang/phobos/issues/9599 DO NOT COMMENT HERE ANYMORE, NOBODY WILL SEE IT, THIS ISSUE HAS BEEN MOVED TO GITHUB