From: Jürg Billeter Date: Tue, 29 Sep 2009 20:37:20 +0000 (+0200) Subject: Do not use char for non-ASCII character literals X-Git-Tag: 0.7.8~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0c03c0e78968982cd27a61d732c5ff758bb5d20;p=thirdparty%2Fvala.git Do not use char for non-ASCII character literals Fixes bug 596785. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 907f13326..41213ce24 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,6 +21,7 @@ TESTS = \ basic-types/arrays.vala \ basic-types/pointers.vala \ basic-types/bug596637.vala \ + basic-types/bug596785.vala \ namespaces.vala \ methods/lambda.vala \ methods/closures.vala \ diff --git a/tests/basic-types/bug596785.vala b/tests/basic-types/bug596785.vala new file mode 100644 index 000000000..7afb21add --- /dev/null +++ b/tests/basic-types/bug596785.vala @@ -0,0 +1,4 @@ +void main () { + var c = '€'; + assert (c == '€'); +} diff --git a/vala/valacharacterliteral.vala b/vala/valacharacterliteral.vala index 1d33c92ef..f6715351c 100644 --- a/vala/valacharacterliteral.vala +++ b/vala/valacharacterliteral.vala @@ -85,7 +85,11 @@ public class Vala.CharacterLiteral : Literal { checked = true; - value_type = new IntegerType ((Struct) analyzer.root_symbol.scope.lookup ("char")); + if (get_char () < 128) { + value_type = new IntegerType ((Struct) analyzer.root_symbol.scope.lookup ("char")); + } else { + value_type = new IntegerType ((Struct) analyzer.root_symbol.scope.lookup ("unichar")); + } return !error; }