From: Jürg Billeter Date: Mon, 15 Dec 2008 19:59:02 +0000 (+0000) Subject: Check switch expression X-Git-Tag: VALA_0_5_3~36 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb4ff59ad4c57fa0f931cd5c3ae24d844bb877fd;p=thirdparty%2Fvala.git Check switch expression 2008-12-15 Jürg Billeter * vala/valaswitchstatement.vala: Check switch expression svn path=/trunk/; revision=2158 --- diff --git a/ChangeLog b/ChangeLog index 4b6c7ebc7..c96f31c24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-12-15 Jürg Billeter + + * vala/valaswitchstatement.vala: + + Check switch expression + 2008-12-15 Jürg Billeter * vapi/glib-2.0.vapi: diff --git a/vala/valaswitchstatement.vala b/vala/valaswitchstatement.vala index e3c272752..0fd5b8383 100644 --- a/vala/valaswitchstatement.vala +++ b/vala/valaswitchstatement.vala @@ -101,7 +101,17 @@ public class Vala.SwitchStatement : CodeNode, Statement { checked = true; - expression.check (analyzer); + if (!expression.check (analyzer)) { + error = true; + return false; + } + + if (!expression.value_type.compatible (analyzer.uint64_type) + && !expression.value_type.compatible (analyzer.string_type)) { + Report.error (expression.source_reference, "Integer or string expression expected"); + error = true; + return false; + } foreach (SwitchSection section in sections) { section.check (analyzer);