From: Jürg Billeter Date: Mon, 17 Nov 2008 21:36:37 +0000 (+0000) Subject: Allow any integer compatible value to be used as array index, fixes bug X-Git-Tag: VALA_0_5_2~82 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5dd974083835febfde957e1733cd5e2c2520200e;p=thirdparty%2Fvala.git Allow any integer compatible value to be used as array index, fixes bug 2008-11-17 Jürg Billeter * vala/valaarraycreationexpression.vala: * vala/valaelementaccess.vala: * vala/valasourcefile.vala: Allow any integer compatible value to be used as array index, fixes bug 561057 svn path=/trunk/; revision=2029 --- diff --git a/ChangeLog b/ChangeLog index 5129b859f..927e3f009 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-11-17 Jürg Billeter + + * vala/valaarraycreationexpression.vala: + * vala/valaelementaccess.vala: + * vala/valasourcefile.vala: + + Allow any integer compatible value to be used as array index, + fixes bug 561057 + 2008-11-17 Jürg Billeter * vala/valaflowanalyzer.vala: diff --git a/vala/valaarraycreationexpression.vala b/vala/valaarraycreationexpression.vala index 48fbc086f..9ef841c54 100644 --- a/vala/valaarraycreationexpression.vala +++ b/vala/valaarraycreationexpression.vala @@ -180,7 +180,7 @@ public class Vala.ArrayCreationExpression : Expression { if (e.value_type == null) { /* return on previous error */ return false; - } else if (!(e.value_type.data_type is Struct) || !((Struct) e.value_type.data_type).is_integer_type ()) { + } else if (!e.value_type.compatible (analyzer.long_type)) { error = true; Report.error (e.source_reference, "Expression of integer type expected"); } diff --git a/vala/valaelementaccess.vala b/vala/valaelementaccess.vala index c18363c96..7b40354ee 100644 --- a/vala/valaelementaccess.vala +++ b/vala/valaelementaccess.vala @@ -199,7 +199,7 @@ public class Vala.ElementAccess : Expression { } /* check if the index is of type integer */ - if (!(e.value_type.data_type is Struct) || !((Struct) e.value_type.data_type).is_integer_type ()) { + if (!e.value_type.compatible (analyzer.long_type)) { error = true; Report.error (e.source_reference, "Expression of integer type expected"); } diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 085372cbe..4d257c5f4 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -457,7 +457,7 @@ public class Vala.SourceFile { { source_array = new Gee.ArrayList (); string[] lines = cont.split ("\n", 0); - uint idx; + int idx; for (idx = 0; lines[idx] != null; ++idx) { source_array.add (lines[idx]); }