]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Do not use char for non-ASCII character literals
authorJürg Billeter <j@bitron.ch>
Tue, 29 Sep 2009 20:37:20 +0000 (22:37 +0200)
committerJürg Billeter <j@bitron.ch>
Tue, 29 Sep 2009 20:37:20 +0000 (22:37 +0200)
Fixes bug 596785.

tests/Makefile.am
tests/basic-types/bug596785.vala [new file with mode: 0644]
vala/valacharacterliteral.vala

index 907f133267ac8bc322a2079f452e915eaa9e8884..41213ce247f072248d4869927c79ca2cabc4bdde 100644 (file)
@@ -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 (file)
index 0000000..7afb21a
--- /dev/null
@@ -0,0 +1,4 @@
+void main () {
+       var c = '€';
+       assert (c == '€');
+}
index 1d33c92ef1cf2e45cc24dbda16f6226cb6aa7a3b..f6715351c23e4486d41e9fb10bb675dee2fc3c34 100644 (file)
@@ -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;
        }