提交 293ad809 编写于 作者: A Andrew Hanlon

Fix #33560 Handle equal tokens where Text is not available.

上级 44343855
......@@ -288,6 +288,8 @@ private static SyntaxToken GetPreviousTokenIfNotFirstTokenInTree(SyntaxToken tok
public static bool AreTwoTokensOnSameLine(SyntaxToken token1, SyntaxToken token2)
{
if (token1 == token2) return true;
var tree = token1.SyntaxTree;
if (tree != null && tree.TryGetText(out var text))
{
......
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Utilities;
using Xunit;
namespace Microsoft.CodeAnalysis.UnitTests.UtilityTest
{
public class FormattingRangeHelperTests
{
[Fact]
public void TestAreTwoTokensOnSameLineTrue()
{
var root = SyntaxFactory.ParseSyntaxTree("{Foo();}").GetRoot();
var token1 = root.GetFirstToken();
var token2 = root.GetLastToken();
Assert.True(FormattingRangeHelper.AreTwoTokensOnSameLine(token1, token2));
}
[Fact]
public void TestAreTwoTokensOnSameLineFalse()
{
var root = SyntaxFactory.ParseSyntaxTree("{Fizz();\nBuzz();}").GetRoot();
var token1 = root.GetFirstToken();
var token2 = root.GetLastToken();
Assert.False(FormattingRangeHelper.AreTwoTokensOnSameLine(token1, token2));
}
[Fact]
public void TestAreTwoTokensOnSameLineWithEqualTokens()
{
var token = SyntaxFactory.ParseSyntaxTree("else\nFoo();").GetRoot().GetFirstToken();
Assert.True(FormattingRangeHelper.AreTwoTokensOnSameLine(token, token));
}
[Fact]
public void TestAreTwoTokensOnSameLineWithEqualTokensWithoutSyntaxTree()
{
var token = SyntaxFactory.ParseToken("else");
Assert.True(FormattingRangeHelper.AreTwoTokensOnSameLine(token, token));
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册