未验证 提交 9cdc1fb5 编写于 作者: S Sam Harwell 提交者: GitHub

Merge pull request #36380 from Andrew-Hanlon/master

Fix #33560 Handle equal tokens where Text is not available.
......@@ -288,6 +288,11 @@ 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 Roslyn.Test.Utilities;
using Xunit;
namespace Microsoft.CodeAnalysis.UnitTests.UtilityTest
{
public class FormattingRangeHelperTests
{
[WorkItem(33560, "https://github.com/dotnet/roslyn/issues/33560")]
[Fact]
public void TestAreTwoTokensOnSameLineTrue()
{
var root = SyntaxFactory.ParseSyntaxTree("{Foo();}").GetRoot();
var token1 = root.GetFirstToken();
var token2 = root.GetLastToken();
Assert.True(FormattingRangeHelper.AreTwoTokensOnSameLine(token1, token2));
}
[WorkItem(33560, "https://github.com/dotnet/roslyn/issues/33560")]
[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));
}
[WorkItem(33560, "https://github.com/dotnet/roslyn/issues/33560")]
[Fact]
public void TestAreTwoTokensOnSameLineWithEqualTokens()
{
var token = SyntaxFactory.ParseSyntaxTree("else\nFoo();").GetRoot().GetFirstToken();
Assert.True(FormattingRangeHelper.AreTwoTokensOnSameLine(token, token));
}
[WorkItem(33560, "https://github.com/dotnet/roslyn/issues/33560")]
[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.
先完成此消息的编辑!
想要评论请 注册