From: Jürg Billeter Date: Fri, 14 Nov 2008 21:36:16 +0000 (+0000) Subject: Set target_type for member initializers X-Git-Tag: VALA_0_5_2~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6dd749cccead2fff31aa4c833b99f75c623d985c;p=thirdparty%2Fvala.git Set target_type for member initializers 2008-11-14 Jürg Billeter * vala/valasemanticanalyzer.vala: Set target_type for member initializers svn path=/trunk/; revision=2023 --- diff --git a/ChangeLog b/ChangeLog index d0e0604b3..b9d860705 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-11-14 Jürg Billeter + + * vala/valasemanticanalyzer.vala: + + Set target_type for member initializers + 2008-11-14 Jürg Billeter * vapi/packages/gstreamer-0.10/: diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 8b2cbba89..4bc3f74be 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -599,8 +599,6 @@ public class Vala.SemanticAnalyzer : CodeVisitor { } public void visit_member_initializer (MemberInitializer init, DataType type) { - init.check (this); - init.symbol_reference = symbol_lookup_inherited (type.data_type, init.name); if (!(init.symbol_reference is Field || init.symbol_reference is Property)) { init.error = true; @@ -625,7 +623,12 @@ public class Vala.SemanticAnalyzer : CodeVisitor { return; } } - if (init.initializer.value_type == null || !init.initializer.value_type.compatible (member_type)) { + + init.initializer.target_type = member_type; + + init.check (this); + + if (init.initializer.value_type == null || !init.initializer.value_type.compatible (init.initializer.target_type)) { init.error = true; Report.error (init.source_reference, "Invalid type for member `%s'".printf (init.name)); return;