diff options
author | Marco Trevisan (TreviƱo) <mail@3v1n0.net> | 2011-01-12 16:47:17 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-02-17 23:19:47 +0100 |
commit | dff67ff218644f5d99ae7709046609dacf30f263 (patch) | |
tree | 19c021e3e83d3e0497e0db3592c3a7e0a7b0c8d9 /tests/basic-types | |
parent | 9093a1d714a87504fa264dd5f72aaf5f8a29d5a4 (diff) | |
download | vala-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.vala | 26 |
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"); +} |