提交 f5073989 编写于 作者: V vladres

Fix Bug 959148: Incorrect processing of SOFT HYPHEN (U+00AD) in identifiers. (changeset 1285690)

上级 b6d1a12b
......@@ -301,7 +301,7 @@ internal static bool IsFormattingChar(char ch)
{
// There are no FormattingChars in ASCII range
return ch > 255 && IsFormattingChar(CharUnicodeInfo.GetUnicodeCategory(ch));
return ch > 127 && IsFormattingChar(CharUnicodeInfo.GetUnicodeCategory(ch));
}
/// <summary>
......
......@@ -613,6 +613,22 @@ public void TestFormattingCharacter()
Assert.False(SyntaxFacts.ContainsDroppedIdentifierCharacters(tok.ValueText));
}
[WorkItem(959148, "DevDiv")]
[Fact]
public void TestSoftHyphen()
{
var text = "x\u00ady";
var tok = SyntaxFactory.ParseToken(text);
Assert.NotNull(tok);
Assert.Equal(text, tok.ToString());
Assert.NotEqual(text, tok.ValueText);
Assert.Equal("xy", tok.ValueText); // formatting character SOFT HYPHEN (U+00AD) removed
Assert.True(SyntaxFacts.ContainsDroppedIdentifierCharacters(text));
Assert.False(SyntaxFacts.ContainsDroppedIdentifierCharacters(tok.ValueText));
}
[WorkItem(545778, "DevDiv")]
[Fact]
public void ContainsDroppedIdentifierCharacters()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册