From: Jürg Billeter Date: Wed, 17 Dec 2008 23:07:18 +0000 (+0000) Subject: Report error when trying to connect signal to instance method from static X-Git-Tag: VALA_0_5_4~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b29907bc25cd97da5e6814a575391f45c674d33;p=thirdparty%2Fvala.git Report error when trying to connect signal to instance method from static 2008-12-18 Jürg Billeter * vala/valaassignment.vala: Report error when trying to connect signal to instance method from static context, fixes bug 502669 svn path=/trunk/; revision=2206 --- diff --git a/ChangeLog b/ChangeLog index 1aa899611..6a766b138 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-12-18 Jürg Billeter + + * vala/valaassignment.vala: + + Report error when trying to connect signal to instance method + from static context, fixes bug 502669 + 2008-12-17 Jürg Billeter * gobject/valaccodebasemodule.vala: diff --git a/vala/valaassignment.vala b/vala/valaassignment.vala index cd870d19c..d24a7a39e 100644 --- a/vala/valaassignment.vala +++ b/vala/valaassignment.vala @@ -221,6 +221,7 @@ public class Vala.Assignment : Expression { } var dynamic_sig = sig as DynamicSignal; + var right_ma = right as MemberAccess; if (dynamic_sig != null) { bool first = true; foreach (FormalParameter param in dynamic_sig.handler.value_type.get_parameters ()) { @@ -238,6 +239,10 @@ public class Vala.Assignment : Expression { error = true; Report.error (right.source_reference, "method `%s' is incompatible with signal `%s', expected `%s'".printf (right.value_type.to_string (), right.target_type.to_string (), delegate_type.delegate_symbol.get_prototype_string (m.name))); return false; + } else if (right_ma != null && right_ma.prototype_access) { + error = true; + Report.error (right.source_reference, "Access to instance member `%s' denied".printf (m.get_full_name ())); + return false; } } else if (left is MemberAccess) { var ma = (MemberAccess) left;