summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2019-03-10 18:14:09 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2019-04-10 16:26:19 +0200
commite0525d5e7c34a2b46af8e54750f62ed17bdded85 (patch)
tree3025c75ca2b191db3c52bfcb2f9f7155c8ef77ae
parentf6719bdb25faf8d28a4c646a450d66db38e75b90 (diff)
downloadvala-e0525d5e7c34a2b46af8e54750f62ed17bdded85.tar.gz
vala: Allow assignment of 0U to enum types
Don't restrict unsigned 0 literal to flags-enums though.
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/enums/from-0-literal.vala21
-rw-r--r--vala/valaintegertype.vala2
3 files changed, 23 insertions, 1 deletions
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;