From: Ole André Vadla Ravnås Date: Tue, 14 Mar 2017 19:44:45 +0000 (+0100) Subject: vala: Fix MemberAccess.is_non_null() for EnumValue constants X-Git-Tag: 0.36.0~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b57a9f8b1c21ec7cf685ead4a0aee093cd2c3357;p=thirdparty%2Fvala.git vala: Fix MemberAccess.is_non_null() for EnumValue constants This is because an EnumValue object does not have a type reference. https://bugzilla.gnome.org/show_bug.cgi?id=780050 --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 426570c5a..add13c5a8 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -112,6 +112,7 @@ TESTS = \ enums/flags.vala \ enums/bug673879.vala \ enums/bug763831.vala \ + enums/bug780050.vala \ structs/structs.vala \ structs/gvalue.vala \ structs/bug530605.vala \ diff --git a/tests/enums/bug780050.vala b/tests/enums/bug780050.vala new file mode 100644 index 000000000..b69f7c099 --- /dev/null +++ b/tests/enums/bug780050.vala @@ -0,0 +1,10 @@ +enum Bar { + FOO +} + +namespace Foo { + Bar bar = Bar.FOO; +} + +void main () { +} diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala index 23ca8d68b..c00f5fca5 100644 --- a/vala/valamemberaccess.vala +++ b/vala/valamemberaccess.vala @@ -187,7 +187,7 @@ public class Vala.MemberAccess : Expression { public override bool is_non_null () { var c = symbol_reference as Constant; if (c != null) { - return !c.type_reference.nullable; + return (c is EnumValue || !c.type_reference.nullable); } else { return false; }