提交 dd5746e3 编写于 作者: C Cyrus Najmabadi

Simplify

上级 b4102367
......@@ -20,6 +20,9 @@ public ArgumentFixer(CSharpAddExplicitCastCodeFixProvider provider) : base(provi
{
}
protected override ExpressionSyntax GetExpressionOfArgument(ArgumentSyntax argument)
=> argument.Expression;
protected override ArgumentSyntax GenerateNewArgument(ArgumentSyntax oldArgument, ITypeSymbol conversionType)
=> oldArgument.WithExpression(oldArgument.Expression.Cast(conversionType));
......
......@@ -20,6 +20,9 @@ public AttributeArgumentFixer(CSharpAddExplicitCastCodeFixProvider provider) : b
{
}
protected override ExpressionSyntax GetExpressionOfArgument(AttributeArgumentSyntax argument)
=> argument.Expression;
protected override AttributeArgumentSyntax GenerateNewArgument(AttributeArgumentSyntax oldArgument, ITypeSymbol conversionType)
=> oldArgument.WithExpression(oldArgument.Expression.Cast(conversionType));
......
......@@ -26,6 +26,7 @@ protected abstract class Fixer<TArgumentSyntax, TArgumentListSyntax, TInvocation
protected Fixer(AbstractAddExplicitCastCodeFixProvider<TExpressionSyntax> provider)
=> _provider = provider;
protected abstract TExpressionSyntax GetExpressionOfArgument(TArgumentSyntax argument);
protected abstract TArgumentSyntax GenerateNewArgument(TArgumentSyntax oldArgument, ITypeSymbol conversionType);
protected abstract TArgumentListSyntax GenerateNewArgumentList(TArgumentListSyntax oldArgumentList, ArrayBuilder<TArgumentSyntax> newArguments);
protected abstract SeparatedSyntaxList<TArgumentSyntax> GetArgumentsOfArgumentList(TArgumentListSyntax argumentList);
......@@ -67,7 +68,7 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider<TExpressionSyntax> provid
if (CanArgumentTypesBeConvertedToParameterTypes(
semanticModel, root, argumentList, candidateSymbol.Parameters,
targetArgument, cancellationToken, out var targetArgumentConversionType)
&& _provider.SyntaxFacts.GetExpressionOfArgument(targetArgument) is TExpressionSyntax argumentExpression)
&& GetExpressionOfArgument(targetArgument) is TExpressionSyntax argumentExpression)
{
mutablePotentialConversionTypes.Add((argumentExpression, targetArgumentConversionType));
}
......@@ -144,7 +145,7 @@ protected Fixer(AbstractAddExplicitCastCodeFixProvider<TExpressionSyntax> provid
}
// The argument is either in order with parameters, or have a matched name with parameters.
var argumentExpression = syntaxFacts.GetExpressionOfArgument(arguments[i]) as TExpressionSyntax;
var argumentExpression = GetExpressionOfArgument(arguments[i]);
if (argumentExpression == null)
{
// argumentExpression is null when it is an omitted argument in VB .NET
......
......@@ -14,6 +14,10 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.CodeFixes.AddExplicitCast
MyBase.New(provider)
End Sub
Protected Overrides Function GetExpressionOfArgument(argument As ArgumentSyntax) As ExpressionSyntax
Return argument.GetArgumentExpression()
End Function
Protected Overrides Function GenerateNewArgument(oldArgument As ArgumentSyntax, conversionType As ITypeSymbol) As ArgumentSyntax
Select Case oldArgument.Kind
Case SyntaxKind.SimpleArgument
......
......@@ -570,17 +570,7 @@ public bool IsBaseTypeList(SyntaxNode node)
=> node.IsKind(SyntaxKind.BaseList);
public SyntaxNode GetExpressionOfArgument(SyntaxNode node)
{
if (node is ArgumentSyntax)
{
return ((ArgumentSyntax)node).Expression;
}
else
{
// node is AttributeArgumentSyntax
return ((AttributeArgumentSyntax)node).Expression;
}
}
=> (node as ArgumentSyntax)?.Expression;
public RefKind GetRefKindOfArgument(SyntaxNode node)
=> (node as ArgumentSyntax).GetRefKind();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册