From: Juerg Billeter Date: Sun, 9 Sep 2007 18:34:07 +0000 (+0000) Subject: detect interface prerequisite cycle X-Git-Tag: VALA_0_1_4~49 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5a835f4ecb7bed4745bfa2083c321ee6c65e2046;p=thirdparty%2Fvala.git detect interface prerequisite cycle 2007-09-09 Juerg Billeter * vala/valasymbolresolver.vala: detect interface prerequisite cycle svn path=/trunk/; revision=599 --- diff --git a/ChangeLog b/ChangeLog index 6daa2e494..75f82c1a4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2007-09-09 Jürg Billeter + + * vala/valasymbolresolver.vala: detect interface prerequisite cycle + 2007-09-09 Jürg Billeter * vala/valaclass.vala, vala/valainterface.vala, diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index 42d9ecb81..98a971076 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -90,6 +90,14 @@ public class Vala.SymbolResolver : CodeVisitor { iface.accept_children (this); + foreach (TypeReference type in iface.get_prerequisites ()) { + if (type.data_type.is_subtype_of (iface)) { + iface.error = true; + Report.error (type.source_reference, "Prerequisite cycle (`%s' and `%s')".printf (iface.get_full_name (), type.data_type.get_full_name ())); + return; + } + } + current_scope = current_scope.parent_scope; }