From 3432e75ff8f10641edaaca13b64e1fec16e0beac Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Mon, 7 Jul 2008 12:40:16 +0000 Subject: [PATCH] Fix error message when encountering invalid character literals, fixes bug MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2008-07-07 Jürg Billeter * vala/valacharacterliteral.vala: * vala/valaparser.vala: Fix error message when encountering invalid character literals, fixes bug 541452 svn path=/trunk/; revision=1681 --- ChangeLog | 8 ++++++++ vala/valacharacterliteral.vala | 8 +------- vala/valaparser.vala | 7 ++++++- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index c7af7af..ef493f1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2008-07-07 Jürg Billeter + * vala/valacharacterliteral.vala: + * vala/valaparser.vala: + + Fix error message when encountering invalid character literals, + fixes bug 541452 + +2008-07-07 Jürg Billeter + * vapi/glib-2.0.vapi: Add string.length property and bool.to_string method, diff --git a/vala/valacharacterliteral.vala b/vala/valacharacterliteral.vala index ea3c5e7..d818ce8 100644 --- a/vala/valacharacterliteral.vala +++ b/vala/valacharacterliteral.vala @@ -57,13 +57,7 @@ public class Vala.CharacterLiteral : Literal { source_reference = source; } - - construct { - if (error) { - Report.error (source_reference, "invalid character literal"); - } - } - + public override void accept (CodeVisitor visitor) { visitor.visit_character_literal (this); diff --git a/vala/valaparser.vala b/vala/valaparser.vala index 1a2dcef..10b1407 100644 --- a/vala/valaparser.vala +++ b/vala/valaparser.vala @@ -261,7 +261,12 @@ public class Vala.Parser : CodeVisitor { return new RealLiteral (get_last_string (), get_src (begin)); case TokenType.CHARACTER_LITERAL: next (); - return new CharacterLiteral (get_last_string (), get_src (begin)); + // FIXME validate and unescape here and just pass unichar to CharacterLiteral + var lit = new CharacterLiteral (get_last_string (), get_src (begin)); + if (lit.error) { + Report.error (lit.source_reference, "invalid character literal"); + } + return lit; case TokenType.STRING_LITERAL: next (); return new StringLiteral (get_last_string (), get_src (begin)); -- 2.7.4