From dff67ff218644f5d99ae7709046609dacf30f263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 12 Jan 2011 16:47:17 +0100 Subject: codegen: Add valid support for const multi-dimensional arrays For example this const int[,,] tri_numbers = {{{1, 2, 3}, {5, 5, 6}}, {{6, 7}}}; correctly transfoms to const gint tri_numbers[2][2][3] = {{{1, 2, 3}, {5, 5, 6}}, {{6, 7}}}; https://bugzilla.gnome.org/show_bug.cgi?id=604371 --- tests/basic-types/bug604371.vala | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 tests/basic-types/bug604371.vala (limited to 'tests/basic-types') diff --git a/tests/basic-types/bug604371.vala b/tests/basic-types/bug604371.vala new file mode 100644 index 000000000..d29b21a2d --- /dev/null +++ b/tests/basic-types/bug604371.vala @@ -0,0 +1,26 @@ +const int[,] FOO = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 6, 7, 8 }, { 9 }}; +const string[,] BAR = { { "a", "b" }, { "c", "d" }, { "e", "f" }, { "g", "h", "i" }, { "j" }}; + +void main () { + assert (FOO.length[0] == 5); + assert (FOO.length[1] == 3); + assert (FOO[0,1] == 2); + assert (FOO[3,2] == 8); + + int[,] foo = FOO; + assert (foo.length[0] == 5); + assert (foo.length[1] == 3); + assert (foo[0,1] == 2); + assert (foo[3,2] == 8); + + assert (BAR.length[0] == 5); + assert (BAR.length[1] == 3); + assert (BAR[0,1] == "b"); + assert (BAR[3,2] == "i"); + + string[,] bar = BAR; + assert (bar.length[0] == 5); + assert (bar.length[1] == 3); + assert (bar[0,1] == "b"); + assert (bar[3,2] == "i"); +} -- cgit v1.2.1