From 2d6328ddcf26a624f83549c0bf789198b7a2e990 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Sat, 9 May 2020 08:17:47 +0200 Subject: [PATCH] vala: Set value_type of undefined member-access to avoid further criticals --- tests/Makefile.am | 1 + tests/semantic/member-access-undefined.test | 8 ++++++++ vala/valamemberaccess.vala | 1 + 3 files changed, 10 insertions(+) create mode 100644 tests/semantic/member-access-undefined.test diff --git a/tests/Makefile.am b/tests/Makefile.am index b30704f86..d5038fd9d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -829,6 +829,7 @@ TESTS = \ semantic/member-access-async-callback-invalid.test \ semantic/member-access-capture-out.test \ semantic/member-access-protected-invalid.test \ + semantic/member-access-undefined.test \ semantic/method-abstract.test \ semantic/method-abstract-body.test \ semantic/method-async-ref-parameter.test \ diff --git a/tests/semantic/member-access-undefined.test b/tests/semantic/member-access-undefined.test new file mode 100644 index 000000000..905269518 --- /dev/null +++ b/tests/semantic/member-access-undefined.test @@ -0,0 +1,8 @@ +Invalid Code + +void foo (T actual) { +} + +void main () { + foo (undefined); +} diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index 2c0355e1d..1bb805026 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -510,6 +510,7 @@ public class Vala.MemberAccess : Expression { } Report.error (source_reference, "The name `%s' does not exist in the context of `%s'%s".printf (member_name, base_type_name, base_type_package)); + value_type = new InvalidType (); return false; } else if (symbol_reference.error) { //ignore previous error -- 2.47.2