]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Allow short-hand form to initialize arrays, fixes bug 515407
authorJuerg Billeter <j@bitron.ch>
Wed, 28 May 2008 20:20:04 +0000 (20:20 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Wed, 28 May 2008 20:20:04 +0000 (20:20 +0000)
2008-05-28  Juerg Billeter  <j@bitron.ch>

* vala/valaparser.vala:

Allow short-hand form to initialize arrays, fixes bug 515407

svn path=/trunk/; revision=1471

ChangeLog
vala/valaparser.vala

index 35271eb404a92f5d2c235696a7269ebd910c0efb..48e1a7ce56943c1217bb63d32f56bff25f53bc54 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-28  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valaparser.vala:
+
+       Allow short-hand form to initialize arrays, fixes bug 515407
+
 2008-05-28  Jürg Billeter  <j@bitron.ch>
 
        * vala/valaparser.vala:
index e944624b93c9d035b6f4c18a4eea4d396a944ed5..06099652b1f6f206f5f0bd436ad2004cf551bea7 100644 (file)
@@ -1373,6 +1373,15 @@ public class Vala.Parser : CodeVisitor {
                Expression initializer = null;
                if (accept (TokenType.ASSIGN)) {
                        initializer = parse_variable_initializer ();
+
+                       // transform shorthand form
+                       //     int[] array = { 42 };
+                       // into
+                       //     int[] array = new int[] { 42 };
+                       var array_type = variable_type as ArrayType;
+                       if (array_type != null && initializer is InitializerList) {
+                               initializer = new ArrayCreationExpression (array_type.element_type.copy (), array_type.rank, (InitializerList) initializer, initializer.source_reference);
+                       }
                }
                return new LocalVariable (variable_type, id, initializer, get_src_com (begin));
        }