From 42463a4e0cfd0dd133c196d7499b3c9b8b1061b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Tue, 5 Apr 2011 14:51:32 +0200 Subject: [PATCH] Fixed unit test TestIdentifierContainingEscapeSequence. --- .../CSharp/Parser/Expression/IdentifierExpressionTests.cs | 2 +- ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-tokenizer.cs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs index d79658eff0..17de9ae684 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Parser/Expression/IdentifierExpressionTests.cs @@ -33,7 +33,7 @@ namespace ICSharpCode.NRefactory.CSharp.Parser.Expression CheckIdentifier(@"\u006cexer", "lexer"); } - [Test, Ignore("Mono parser bug?")] + [Test] public void TestIdentifierContainingEscapeSequence() { CheckIdentifier(@"l\U00000065xer", "lexer"); diff --git a/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-tokenizer.cs b/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-tokenizer.cs index aa0fb42b80..d7819ee5fc 100644 --- a/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-tokenizer.cs +++ b/ICSharpCode.NRefactory/CSharp/Parser/mcs/cs-tokenizer.cs @@ -2762,9 +2762,10 @@ namespace Mono.CSharp if (c == '\\') { int surrogate; c = escape (c, out surrogate); + if (is_identifier_part_character ((char) c)) + id_builder[pos++] = (char) c; + if (surrogate != 0) { - if (is_identifier_part_character ((char) c)) - id_builder[pos++] = (char) c; c = surrogate; }