From e73009f2e4de8190eb372f8bcc93d9de9b102712 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Thu, 19 Dec 2019 10:18:30 +0100 Subject: Add test case --- tests/Makefile.am | 1 + tests/control-flow/bug761267.vala | 51 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 tests/control-flow/bug761267.vala diff --git a/tests/Makefile.am b/tests/Makefile.am index 21bfb431e..829629d3d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -192,6 +192,7 @@ TESTS = \ control-flow/bug691514.vala \ control-flow/bug736774-1.vala \ control-flow/bug736774-2.vala \ + control-flow/bug761267.vala \ control-flow/bug790903.test \ control-flow/bug790903-2.test \ control-semantic/argument-extra.test \ diff --git a/tests/control-flow/bug761267.vala b/tests/control-flow/bug761267.vala new file mode 100644 index 000000000..5c2e91cde --- /dev/null +++ b/tests/control-flow/bug761267.vala @@ -0,0 +1,51 @@ +class Foo { + public int i = 42; + + public Foo? foo () { + return null; + } + + public void faz () { + assert_not_reached (); + } +} + +void bar (Foo? f) { + { + int? j = f?.i; + assert (j == null); + } + { + int k = 23; + k = f?.i; + assert (k == 0); + } +} + +void baz (Foo? f) { + { + int i = f?.i; + assert (i == 42); + } + { + int? j = 23; + j = f?.foo ()?.i; + assert (j == null); + } + { + int k = 23; + k = f?.foo ()?.i; + assert (k == 0); + } +} + +void main () { + { + Foo? foo = null; + foo?.faz (); + } + { + bar (null); + baz (new Foo ()); + } +} -- cgit v1.2.1