summaryrefslogtreecommitdiff
path: root/vala/valamethodcall.vala
diff options
context:
space:
mode:
Diffstat (limited to 'vala/valamethodcall.vala')
-rw-r--r--vala/valamethodcall.vala10
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 ();