From: Rico Tzschichholz Date: Tue, 8 Nov 2016 14:02:24 +0000 (+0100) Subject: tests: "??" evaluates both of sides of expression when right side throws error X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=038af0add3417c3c91a82e38334706ced69f3046;p=thirdparty%2Fvala.git tests: "??" evaluates both of sides of expression when right side throws error https://gitlab.gnome.org/GNOME/vala/issues/534 --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 5feb183f0..1815c0b17 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -168,6 +168,7 @@ TESTS = \ control-flow/bug691514.vala \ control-flow/bug736774-1.vala \ control-flow/bug736774-2.vala \ + control-flow/bug764440.vala \ control-flow/bug790903.test \ control-flow/bug790903-2.test \ control-semantic/argument-extra.test \ diff --git a/tests/control-flow/bug764440.vala b/tests/control-flow/bug764440.vala new file mode 100644 index 000000000..6f1caaece --- /dev/null +++ b/tests/control-flow/bug764440.vala @@ -0,0 +1,17 @@ +errordomain FooError { + BAR; +} + +unowned string get_bar () throws FooError { + throw new FooError.BAR ("bar"); +} + +void main () { + try { + unowned string? foo = "foo"; + unowned string bar = foo ?? get_bar (); + print ("%s\n", bar); + } catch { + assert_not_reached (); + } +}