digitalmars.D.bugs - [Issue 6469] New: Compiler fails to initialize associative array: string->[string->string]
- d-bugmail puremagic.com (63/63) Aug 11 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6469
- d-bugmail puremagic.com (7/7) Aug 11 2011 http://d.puremagic.com/issues/show_bug.cgi?id=6469
- d-bugmail puremagic.com (15/15) Mar 22 2012 http://d.puremagic.com/issues/show_bug.cgi?id=6469
- d-bugmail puremagic.com (6/6) Apr 20 2012 http://d.puremagic.com/issues/show_bug.cgi?id=6469
- d-bugmail puremagic.com (16/16) Sep 03 2013 http://d.puremagic.com/issues/show_bug.cgi?id=6469
http://d.puremagic.com/issues/show_bug.cgi?id=6469 Summary: Compiler fails to initialize associative array: string->[string->string] Product: D Version: D2 Platform: All OS/Version: Mac OS X Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody puremagic.com ReportedBy: blazej.podsiadlo gmail.com --- Comment #0 from Blazej Podsiadlo <blazej.podsiadlo gmail.com> 2011-08-11 14:14:37 PDT --- Hi, I'm not able to compile following code: import std.stdio; // print string->[string->string] void printer(ref string[string][string] input) { foreach (k, ref v; input) { writeln(k,":"); foreach (ki, vi ; v) { writeln("\t", ki, "->", vi); } } } int main() { writeln(); alias string[string][string] sss; // works fine sss dyn; dyn["one"] = ["a":"A", "b":"B"]; dyn["two"] = ["c":"C", "d":"D"]; printer(dyn); // fails during compilation sss stat = [ "one" : ["a":"A", "b":"B"], "two" : ["d":"D", "e":"E"], ]; printer(stat); return 0; } ---------- /Users/blazej/Projekty/D/bpodProject/bpTable/main.d(30): Error: Integer constant expression expected instead of "a" /Users/blazej/Projekty/D/bpodProject/bpTable/main.d(30): Error: Integer constant expression expected instead of "b" /Users/blazej/Projekty/D/bpodProject/bpTable/main.d(30): Error: Integer constant expression expected instead of "a" /Users/blazej/Projekty/D/bpodProject/bpTable/main.d(30): Error: Integer constant expression expected instead of "b" /Users/blazej/Projekty/D/bpodProject/bpTable/main.d(28): Error: not an associative array initializer make[2]: *** [bpTable/CMakeFiles/bpTable.dir/main.o] Error 1 make[1]: *** [bpTable/CMakeFiles/bpTable.dir/all] Error 2 make: *** [all] Error 2 ---------- Best Regards, Blazej -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 11 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6469 --- Comment #1 from Blazej Podsiadlo <blazej.podsiadlo gmail.com> 2011-08-11 14:16:07 PDT --- Created an attachment (id=1015) sourceCode -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Aug 11 2011
http://d.puremagic.com/issues/show_bug.cgi?id=6469 Andrej Mitrovic <andrej.mitrovich gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich gmail.com --- Comment #2 from Andrej Mitrovic <andrej.mitrovich gmail.com> 2012-03-22 22:14:30 PDT --- As I've just discovered, you can use a cast() as a workaround until this gets fixed: sss stat = cast()[ "one" : ["a":"A", "b":"B"], "two" : ["d":"D", "e":"E"], ]; -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Mar 22 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6469 --- Comment #3 from SomeDude <lovelydear mailmetrash.com> 2012-04-20 16:03:35 PDT --- Also fails on 2.059 Win32. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Apr 20 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6469 bearophile_hugs eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bearophile_hugs eml.cc --- Comment #4 from bearophile_hugs eml.cc 2013-09-03 04:44:41 PDT --- DMD 2.064alpha gives: void main() { int[int] aa1 = [10: 1, 20: 2]; // OK int[int][int] aa2 = [30: aa1]; // OK int[int][int] aa3 = cast()[30: [10: 1, 20: 2]]; // Error. } test.d(4): Error: not an associative array initializer -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Sep 03 2013