From 445e06bda981625a69d53b0383743b4ab6da67eb Mon Sep 17 00:00:00 2001 From: Jared Moore Date: Sat, 27 Sep 2008 01:53:22 +0000 Subject: [PATCH] Check type of 'default' initializers in semantic analyzer, fixes bug 2008-08-27 Jared Moore * vala/valasemanticanalyser.vala: Check type of 'default' initializers in semantic analyzer, fixes bug 544556. svn path=/trunk/; revision=1791 --- ChangeLog | 7 +++++++ vala/valasemanticanalyzer.vala | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0fd2c54..6c13a8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-08-27 Jared Moore + + * vala/valasemanticanalyser.vala: + + Check type of 'default' initializers in semantic analyzer, fixes bug + 544556. + 2008-09-26 Jürg Billeter * vapi/glib-2.0.vapi: diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 3473a19..e87facf 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -676,6 +676,11 @@ public class Vala.SemanticAnalyzer : CodeVisitor { Report.error (prop.source_reference, "%s: construct properties must be public".printf (prop.get_full_name ())); } } + + if (prop.default_expression != null && !(prop.default_expression.value_type.compatible (prop.property_type))) { + prop.error = true; + Report.error (prop.default_expression.source_reference, "Expected initializer of type `%s' but got `%s'".printf (prop.property_type.to_string (), prop.default_expression.value_type.to_string ())); + } } public override void visit_property_accessor (PropertyAccessor acc) { -- 2.7.4