diff options
Diffstat (limited to 'vala/valamethodcall.vala')
-rw-r--r-- | vala/valamethodcall.vala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala index af44a2a5b..80d0d772f 100644 --- a/vala/valamethodcall.vala +++ b/vala/valamethodcall.vala @@ -535,6 +535,16 @@ public class Vala.MethodCall : Expression { value_type.nullable = true; } + unowned Signal? sig = m.parent_symbol as Signal; + if (sig != null && m.name == "disconnect") { + var param = get_argument_list ()[0]; + if (param is LambdaExpression) { + error = true; + Report.error (source_reference, "Cannot disconnect lambda expression from signal"); + return false; + } + } + var dynamic_sig = m.parent_symbol as DynamicSignal; if (dynamic_sig != null && dynamic_sig.handler != null) { dynamic_sig.return_type = dynamic_sig.handler.value_type.get_return_type ().copy (); |