diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2019-12-19 10:18:30 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2019-12-19 10:18:30 +0100 |
commit | e73009f2e4de8190eb372f8bcc93d9de9b102712 (patch) | |
tree | 8ad8145ae30678c682c3184e0d986dd3c6baa9f6 | |
parent | 1984952531043e6b713e2884d640d4b976a43c88 (diff) | |
download | vala-wip/null-conditional.tar.gz |
Add test casewip/null-conditional
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/control-flow/bug761267.vala | 51 |
2 files changed, 52 insertions, 0 deletions
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 ()); + } +} |