From: Rico Tzschichholz Date: Sun, 10 Mar 2019 17:14:09 +0000 (+0100) Subject: vala: Allow assignment of 0U to enum types X-Git-Tag: 0.42.7~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0525d5e7c34a2b46af8e54750f62ed17bdded85;p=thirdparty%2Fvala.git vala: Allow assignment of 0U to enum types Don't restrict unsigned 0 literal to flags-enums though. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index cfe9b25a9..73c87a6b9 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -189,6 +189,7 @@ TESTS = \ enums/enum-no-gtype.vala \ enums/enums.vala \ enums/flags.vala \ + enums/from-0-literal.vala \ enums/no_gtype_to_string.vala \ enums/bug666035.vala \ enums/bug673879.vala \ diff --git a/tests/enums/from-0-literal.vala b/tests/enums/from-0-literal.vala new file mode 100644 index 000000000..7f802588d --- /dev/null +++ b/tests/enums/from-0-literal.vala @@ -0,0 +1,21 @@ +enum Foo { + BAR +} + +[Flags] +enum Bar { + FOO +} + +void main () { + { + Foo foo; + foo = 0; + foo = 0U; + } + { + Bar bar; + bar = 0; + bar = 0U; + } +} diff --git a/vala/valaintegertype.vala b/vala/valaintegertype.vala index 53845455a..274fe4716 100644 --- a/vala/valaintegertype.vala +++ b/vala/valaintegertype.vala @@ -59,7 +59,7 @@ public class Vala.IntegerType : ValueType { return true; } } - } else if (target_type.data_type is Enum && literal_type_name == "int") { + } else if (target_type.data_type is Enum && (literal_type_name == "int" || literal_type_name == "uint")) { // allow implicit conversion from 0 to enum and flags types if (int.parse (literal_value) == 0) { return true;