提交 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) ...@@ -301,7 +301,7 @@ internal static bool IsFormattingChar(char ch)
{ {
// There are no FormattingChars in ASCII range // There are no FormattingChars in ASCII range
return ch > 255 && IsFormattingChar(CharUnicodeInfo.GetUnicodeCategory(ch)); return ch > 127 && IsFormattingChar(CharUnicodeInfo.GetUnicodeCategory(ch));
} }
/// <summary> /// <summary>
......
...@@ -613,6 +613,22 @@ public void TestFormattingCharacter() ...@@ -613,6 +613,22 @@ public void TestFormattingCharacter()
Assert.False(SyntaxFacts.ContainsDroppedIdentifierCharacters(tok.ValueText)); 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")] [WorkItem(545778, "DevDiv")]
[Fact] [Fact]
public void ContainsDroppedIdentifierCharacters() public void ContainsDroppedIdentifierCharacters()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册