summaryrefslogtreecommitdiff
path: root/tests/basic-types
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2011-01-12 16:47:17 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2018-02-17 23:19:47 +0100
commitdff67ff218644f5d99ae7709046609dacf30f263 (patch)
tree19c021e3e83d3e0497e0db3592c3a7e0a7b0c8d9 /tests/basic-types
parent9093a1d714a87504fa264dd5f72aaf5f8a29d5a4 (diff)
downloadvala-dff67ff218644f5d99ae7709046609dacf30f263.tar.gz
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
Diffstat (limited to 'tests/basic-types')
-rw-r--r--tests/basic-types/bug604371.vala26
1 files changed, 26 insertions, 0 deletions
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");
+}