提交 7da42fc9 编写于 作者: C Cyrus Najmabadi

Better handle parameter names.

上级 57ffa3e1
......@@ -59,7 +59,7 @@ public override async Task ComputeRefactoringsAsync(CodeRefactoringContext conte
if (!context.Span.IsEmpty)
{
var parameterName = syntaxFacts.GetNameOfParameter(parameterNode);
if (parameterName.Span != context.Span)
if (parameterName == null || parameterName.Value.Span != context.Span)
{
return;
}
......
......@@ -204,8 +204,8 @@ public bool IsGenericName(SyntaxNode node)
public bool IsNamedParameter(SyntaxNode node)
=> node.CheckParent<NameColonSyntax>(p => p.Name == node);
public SyntaxToken GetNameOfParameter(SyntaxNode node)
=> (node as ParameterSyntax)?.Identifier ?? default;
public SyntaxToken? GetNameOfParameter(SyntaxNode node)
=> (node as ParameterSyntax)?.Identifier;
public SyntaxNode GetDefaultOfParameter(SyntaxNode node)
=> (node as ParameterSyntax)?.Default;
......
......@@ -154,7 +154,7 @@ internal interface ISyntaxFactsService : ILanguageService
bool IsPointerMemberAccessExpression(SyntaxNode node);
bool IsNamedParameter(SyntaxNode node);
SyntaxToken GetNameOfParameter(SyntaxNode node);
SyntaxToken? GetNameOfParameter(SyntaxNode node);
SyntaxNode GetDefaultOfParameter(SyntaxNode node);
SyntaxNode GetParameterList(SyntaxNode node);
......
......@@ -206,8 +206,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
Return node.CheckParent(Of SimpleArgumentSyntax)(Function(p) p.IsNamed AndAlso p.NameColonEquals.Name Is node)
End Function
Public Function GetNameOfParameter(node As SyntaxNode) As SyntaxToken Implements ISyntaxFactsService.GetNameOfParameter
Return If(TryCast(node, ParameterSyntax)?.Identifier?.Identifier, New SyntaxToken())
Public Function GetNameOfParameter(node As SyntaxNode) As SyntaxToken? Implements ISyntaxFactsService.GetNameOfParameter
Return TryCast(node, ParameterSyntax)?.Identifier?.Identifier
End Function
Public Function GetDefaultOfParameter(node As SyntaxNode) As SyntaxNode Implements ISyntaxFactsService.GetDefaultOfParameter
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册