未验证 提交 ae4d2e79 编写于 作者: J Julien Couvreur 提交者: GitHub

Don't drop a token passed to a syntax factory method. (#37493)

* Don't drop a token passed to a syntax factory method.

* Delete unintended comment.
Fixes #37467
......@@ -34,7 +34,18 @@ public partial class SyntaxFactory
BlockSyntax body,
SyntaxToken semicolonToken)
{
return SyntaxFactory.MethodDeclaration(attributeLists, modifiers, returnType, explicitInterfaceSpecifier, identifier, typeParameterList, parameterList, constraintClauses, body, null, default(SyntaxToken));
return SyntaxFactory.MethodDeclaration(
attributeLists,
modifiers,
returnType,
explicitInterfaceSpecifier,
identifier,
typeParameterList,
parameterList,
constraintClauses,
body,
null,
semicolonToken);
}
}
}
......@@ -542,5 +542,24 @@ public void TestSpacingOnCoalescing()
var syntaxNode3 = SyntaxFactory.ParseExpression("x is object??y").NormalizeWhitespace();
Assert.Equal("x is object ?? y", syntaxNode3.ToFullString());
}
[Fact]
[WorkItem(37467, "https://github.com/dotnet/roslyn/issues/37467")]
public void TestUnnecessarySemicolon()
{
var syntaxNode = SyntaxFactory.MethodDeclaration(
attributeLists: default,
modifiers: default,
returnType: SyntaxFactory.ParseTypeName("int[]"),
explicitInterfaceSpecifier: default,
identifier: SyntaxFactory.Identifier("M"),
typeParameterList: default,
parameterList: SyntaxFactory.ParseParameterList("()"),
constraintClauses: default,
body: (BlockSyntax)SyntaxFactory.ParseStatement("{}"),
semicolonToken: SyntaxFactory.Token(SyntaxKind.SemicolonToken)
);
Assert.Equal("int[]M(){};", syntaxNode.ToFullString());
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册