summaryrefslogtreecommitdiff
path: root/vala/valacreationmethod.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-12-12 18:47:53 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-12-12 18:47:53 +0100
commit29bef676c2eeb9d0b12cabff7e3af7ce0b93304e (patch)
tree233628fe1533c1e1c5c884e2a3c2f61a47b52e1c /vala/valacreationmethod.vala
parent1473f3e709e3fe930686fa7f2374ccae0f27719b (diff)
downloadvala-29bef676c2eeb9d0b12cabff7e3af7ce0b93304e.tar.gz
vala: Set is_yield_expression in async context when chaining up to async base ctor
vala-CRITICAL **: vala_member_access_get_inner: assertion 'self != NULL' failed vala-CRITICAL **: vala_member_access_get_member_name: assertion 'self != NULL' failed Avoid these spurious criticals and trigger the currently expected error.
Diffstat (limited to 'vala/valacreationmethod.vala')
-rw-r--r--vala/valacreationmethod.vala6
1 files changed, 5 insertions, 1 deletions
diff --git a/vala/valacreationmethod.vala b/vala/valacreationmethod.vala
index dbfd74ff6..b64703634 100644
--- a/vala/valacreationmethod.vala
+++ b/vala/valacreationmethod.vala
@@ -200,7 +200,11 @@ public class Vala.CreationMethod : Method {
context.analyzer.current_symbol = body;
context.analyzer.insert_block = body;
- var stmt = new ExpressionStatement (new MethodCall (new BaseAccess (source_reference), source_reference), source_reference);
+ var base_call = new MethodCall (new BaseAccess (source_reference), source_reference);
+ if (coroutine && cl.base_class.default_construction_method.coroutine) {
+ base_call.is_yield_expression = true;
+ }
+ var stmt = new ExpressionStatement (base_call, source_reference);
body.insert_statement (0, stmt);
stmt.check (context);