提交 71c8e3e2 编写于 作者: C CyrusNajmabadi

Cache the delegates we use in simplification.

上级 2223e156
......@@ -128,15 +128,6 @@ private static SyntaxNode GetParentNode(StatementSyntax statement)
return SimplifyNode(expression, newNode, parentNode, simplifier);
}
protected SyntaxNode SimplifyStatement<TStatement>(
TStatement statement,
SyntaxNode newNode,
Func<TStatement, SemanticModel, OptionSet, CancellationToken, SyntaxNode> simplifier)
where TStatement : ExpressionSyntax
{
return SimplifyNode(statement, newNode, GetParentNode(statement), simplifier);
}
protected SyntaxToken SimplifyToken(SyntaxToken token, Func<SyntaxToken, SemanticModel, OptionSet, CancellationToken, SyntaxToken> simplifier)
{
_cancellationToken.ThrowIfCancellationRequested();
......
......@@ -22,7 +22,7 @@ public override SyntaxNode VisitCastExpression(CastExpressionSyntax node)
return SimplifyExpression(
node,
newNode: base.VisitCastExpression(node),
simplifier: SimplifyCast);
simplifier: s_simplifyCast);
}
public override SyntaxNode VisitBinaryExpression(BinaryExpressionSyntax node)
......
// 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 System;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
......@@ -17,6 +18,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(optionSet, cancellationToken);
}
private static readonly Func<CastExpressionSyntax, SemanticModel, OptionSet, CancellationToken, ExpressionSyntax> s_simplifyCast = SimplifyCast;
private static ExpressionSyntax SimplifyCast(CastExpressionSyntax node, SemanticModel semanticModel, OptionSet optionSet, CancellationToken cancellationToken)
{
if (!node.IsUnnecessaryCast(semanticModel, cancellationToken))
......@@ -44,4 +47,4 @@ private static ExpressionSyntax SimplifyCast(CastExpressionSyntax node, Semantic
return resultNode;
}
}
}
}
\ No newline at end of file
......@@ -20,8 +20,8 @@ public Rewriter(CSharpEscapingReducer escapingSimplifierService, OptionSet optio
public override SyntaxToken VisitToken(SyntaxToken token)
{
var newToken = base.VisitToken(token);
return SimplifyToken(newToken, _escapingSimplifierService.SimplifyIdentifierToken);
return SimplifyToken(newToken, s_simplifyIdentifierToken);
}
}
}
}
}
\ No newline at end of file
// 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 System;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
......@@ -17,7 +18,9 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(this, optionSet, cancellationToken);
}
private SyntaxToken SimplifyIdentifierToken(
private static Func<SyntaxToken, SemanticModel, OptionSet, CancellationToken, SyntaxToken> s_simplifyIdentifierToken = SimplifyIdentifierToken;
private static SyntaxToken SimplifyIdentifierToken(
SyntaxToken token,
SemanticModel semanticModel,
OptionSet optionSet,
......@@ -114,7 +117,7 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return result;
}
private SyntaxToken CreateNewIdentifierTokenFromToken(SyntaxToken originalToken, bool escape)
private static SyntaxToken CreateNewIdentifierTokenFromToken(SyntaxToken originalToken, bool escape)
{
var isVerbatimIdentifier = originalToken.IsVerbatimIdentifier();
if (isVerbatimIdentifier == escape)
......
......@@ -20,8 +20,8 @@ public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax
return SimplifyExpression(
node,
newNode: base.VisitInvocationExpression(node),
simplifier: SimplifyExtensionMethod);
simplifier: s_simplifyExtensionMethod);
}
}
}
}
}
\ No newline at end of file
// 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 System;
using System.Diagnostics;
using System.Linq;
using System.Threading;
......@@ -17,6 +18,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(optionSet, cancellationToken);
}
private static readonly Func<InvocationExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyExtensionMethod = SimplifyExtensionMethod;
private static SyntaxNode SimplifyExtensionMethod(
InvocationExpressionSyntax node,
SemanticModel semanticModel,
......
......@@ -26,7 +26,7 @@ public override SyntaxNode VisitArgument(ArgumentSyntax node)
node,
parentNode: node.Parent,
newNode: newNode,
simplifier: SimplifyTupleName);
simplifier: s_simplifyTupleName);
}
return newNode;
......@@ -38,7 +38,7 @@ public override SyntaxNode VisitAnonymousObjectMemberDeclarator(AnonymousObjectM
node,
parentNode: node.Parent,
newNode: base.VisitAnonymousObjectMemberDeclarator(node),
simplifier: SimplifyAnonymousTypeMemberName);
simplifier: s_simplifyAnonymousTypeMemberName);
}
}
}
......
// 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 System;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
......@@ -19,6 +20,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(optionSet, cancellationToken);
}
private static readonly Func<ArgumentSyntax, SemanticModel, OptionSet, CancellationToken, ArgumentSyntax> s_simplifyTupleName = SimplifyTupleName;
private static ArgumentSyntax SimplifyTupleName(ArgumentSyntax node, SemanticModel semanticModel, OptionSet optionSet, CancellationToken cancellationToken)
{
// Tuple elements are arguments in a tuple expression
......@@ -37,6 +40,7 @@ private static ArgumentSyntax SimplifyTupleName(ArgumentSyntax node, SemanticMod
return node.WithNameColon(null).WithTriviaFrom(node);
}
private static readonly Func<AnonymousObjectMemberDeclaratorSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyAnonymousTypeMemberName = SimplifyAnonymousTypeMemberName;
private static SyntaxNode SimplifyAnonymousTypeMemberName(AnonymousObjectMemberDeclaratorSyntax node, SemanticModel semanticModel, OptionSet optionSet, CancellationToken canellationToken)
{
......
......@@ -21,7 +21,7 @@ public override SyntaxNode VisitParameter(ParameterSyntax node)
node,
newNode: base.VisitParameter(node),
parentNode: node.Parent,
simplifier: SimplifyParameter);
simplifier: s_simplifyParameter);
}
public override SyntaxNode VisitParenthesizedLambdaExpression(ParenthesizedLambdaExpressionSyntax node)
......@@ -30,8 +30,8 @@ public override SyntaxNode VisitParenthesizedLambdaExpression(ParenthesizedLambd
node,
newNode: base.VisitParenthesizedLambdaExpression(node),
parentNode: node.Parent,
simplifier: SimplifyParenthesizedLambdaExpression);
simplifier: s_simplifyParenthesizedLambdaExpression);
}
}
}
}
}
\ No newline at end of file
// 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 System;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
......@@ -50,6 +51,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return false;
}
private static Func<SyntaxNode, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyParameter = SimplifyParameter;
private static SyntaxNode SimplifyParameter(
SyntaxNode node,
SemanticModel semanticModel,
......@@ -66,6 +69,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return node;
}
private static readonly Func<SyntaxNode, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyParenthesizedLambdaExpression = SimplifyParenthesizedLambdaExpression;
private static SyntaxNode SimplifyParenthesizedLambdaExpression(
SyntaxNode node,
SemanticModel semanticModel,
......
......@@ -30,7 +30,7 @@ public override SyntaxNode VisitPredefinedType(PredefinedTypeSyntax node)
var result = SimplifyExpression(
node,
newNode: base.VisitPredefinedType(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -48,7 +48,7 @@ public override SyntaxNode VisitAliasQualifiedName(AliasQualifiedNameSyntax node
var result = SimplifyExpression(
node,
newNode: base.VisitAliasQualifiedName(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -66,7 +66,7 @@ public override SyntaxNode VisitQualifiedName(QualifiedNameSyntax node)
var result = SimplifyExpression(
node,
newNode: base.VisitQualifiedName(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -84,7 +84,7 @@ public override SyntaxNode VisitMemberAccessExpression(MemberAccessExpressionSyn
var result = SimplifyExpression(
node,
newNode: base.VisitMemberAccessExpression(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -102,7 +102,7 @@ public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node)
var result = SimplifyExpression(
node,
newNode: base.VisitIdentifierName(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -120,7 +120,7 @@ public override SyntaxNode VisitGenericName(GenericNameSyntax node)
var result = SimplifyExpression(
node,
newNode: base.VisitGenericName(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......@@ -138,7 +138,7 @@ public override SyntaxNode VisitQualifiedCref(QualifiedCrefSyntax node)
var result = SimplifyExpression(
node,
newNode: base.VisitQualifiedCref(node),
simplifier: SimplifyName);
simplifier: s_simplifyName);
this.alwaysSimplify = oldAlwaysSimplify;
......
// 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 System;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
using Microsoft.CodeAnalysis.CSharp.Syntax;
......@@ -17,6 +18,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(optionSet, cancellationToken);
}
private static readonly Func<SyntaxNode, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyName = SimplifyName;
private static SyntaxNode SimplifyName(
SyntaxNode node,
SemanticModel semanticModel,
......
......@@ -20,8 +20,8 @@ public override SyntaxNode VisitParenthesizedExpression(ParenthesizedExpressionS
return SimplifyExpression(
node,
newNode: base.VisitParenthesizedExpression(node),
simplifier: SimplifyParentheses);
simplifier: s_simplifyParentheses);
}
}
}
}
}
\ No newline at end of file
// 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 System;
using System.Linq;
using System.Threading;
using Microsoft.CodeAnalysis.CSharp.Extensions;
......@@ -17,6 +18,8 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return new Rewriter(optionSet, cancellationToken);
}
private static readonly Func<ParenthesizedExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode> s_simplifyParentheses = SimplifyParentheses;
private static SyntaxNode SimplifyParentheses(
ParenthesizedExpressionSyntax node,
SemanticModel semanticModel,
......@@ -54,4 +57,4 @@ public override IExpressionRewriter CreateExpressionRewriter(OptionSet optionSet
return node;
}
}
}
}
\ No newline at end of file
......@@ -9,6 +9,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Partial Friend MustInherit Class AbstractVisualBasicReducer
Inherits AbstractReducer
Protected Shared ReadOnly s_reduceParentheses As Func(Of ParenthesizedExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf ReduceParentheses
Protected Shared Function ReduceParentheses(
node As ParenthesizedExpressionSyntax,
semanticModel As SemanticModel,
......@@ -45,6 +47,5 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
' We don't know how to simplify this.
Return node
End Function
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -17,16 +17,15 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyStatement(
node,
newNode:=MyBase.VisitCallStatement(node),
simplifier:=AddressOf SimplifyCallStatement)
simplifier:=s_simplifyCallStatement)
End Function
Public Overrides Function VisitParenthesizedExpression(node As ParenthesizedExpressionSyntax) As SyntaxNode
Return SimplifyExpression(
node,
newNode:=MyBase.VisitParenthesizedExpression(node),
simplifier:=AddressOf ReduceParentheses)
simplifier:=s_reduceParentheses)
End Function
End Class
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -13,6 +13,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyCallStatement As Func(Of CallStatementSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyCallStatement
Private Shared Function SimplifyCallStatement(
callStatement As CallStatementSyntax,
semanticModel As SemanticModel,
......
......@@ -17,30 +17,29 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyExpression(
node,
newNode:=MyBase.VisitCTypeExpression(node),
simplifier:=AddressOf SimplifyCast)
simplifier:=s_simplifyCast)
End Function
Public Overrides Function VisitDirectCastExpression(node As DirectCastExpressionSyntax) As SyntaxNode
Return SimplifyExpression(
node,
newNode:=MyBase.VisitDirectCastExpression(node),
simplifier:=AddressOf SimplifyCast)
simplifier:=s_simplifyCast)
End Function
Public Overrides Function VisitTryCastExpression(node As TryCastExpressionSyntax) As SyntaxNode
Return SimplifyExpression(
node,
newNode:=MyBase.VisitTryCastExpression(node),
simplifier:=AddressOf SimplifyCast)
simplifier:=s_simplifyCast)
End Function
Public Overrides Function VisitPredefinedCastExpression(node As PredefinedCastExpressionSyntax) As SyntaxNode
Return SimplifyExpression(
node,
newNode:=MyBase.VisitPredefinedCastExpression(node),
simplifier:=AddressOf SimplifyCast)
simplifier:=s_simplifyPredefinedCast)
End Function
End Class
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -29,6 +29,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return resultNode
End Function
Private Shared ReadOnly s_simplifyCast As Func(Of CastExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = s_simplifyCast
Private Overloads Shared Function SimplifyCast(
node As CastExpressionSyntax,
semanticModel As SemanticModel,
......@@ -43,7 +45,9 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyCast(node, node.Expression, optionSet, cancellationToken)
End Function
Private Overloads Shared Function SimplifyCast(
Private Shared ReadOnly s_simplifyPredefinedCast As Func(Of PredefinedCastExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyPredefinedCast
Private Overloads Shared Function SimplifyPredefinedCast(
node As PredefinedCastExpressionSyntax,
semanticModel As SemanticModel,
optionSet As OptionSet,
......@@ -57,4 +61,4 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyCast(node, node.Expression, optionSet, cancellationToken)
End Function
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -19,8 +19,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyExpression(
node,
newNode:=MyBase.VisitInvocationExpression(node),
simplifier:=AddressOf SimplifyInvocationExpression)
simplifier:=s_simplifyInvocationExpression)
End Function
End Class
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -12,6 +12,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyInvocationExpression As Func(Of InvocationExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyInvocationExpression
Private Shared Function SimplifyInvocationExpression(
invocationExpression As InvocationExpressionSyntax,
semanticModel As SemanticModel,
......
......@@ -24,7 +24,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
node,
parentNode:=node.Parent,
newNode:=newNode,
simplifyFunc:=AddressOf SimplifyTupleName)
simplifyFunc:=s_simplifyTupleName)
End If
Return newNode
......@@ -37,7 +37,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
node,
parentNode:=node.Parent,
newNode:=newNode,
simplifyFunc:=AddressOf SimplifyNamedFieldInitializer)
simplifyFunc:=s_simplifyNamedFieldInitializer)
End Function
End Class
End Class
......
......@@ -18,6 +18,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New VisualBasicInferredMemberNameReducer.Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyTupleName As Func(Of SimpleArgumentSyntax, SemanticModel, OptionSet, CancellationToken, SimpleArgumentSyntax) = AddressOf SimplifyTupleName
Private Shared Function SimplifyTupleName(
node As SimpleArgumentSyntax,
semanticModel As SemanticModel,
......@@ -41,6 +43,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return node.WithNameColonEquals(Nothing).WithTriviaFrom(node)
End Function
Private Shared ReadOnly s_simplifyNamedFieldInitializer As Func(Of NamedFieldInitializerSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyNamedFieldInitializer
Private Shared Function SimplifyNamedFieldInitializer(node As NamedFieldInitializerSyntax, arg2 As SemanticModel, arg3 As OptionSet, arg4 As CancellationToken) As SyntaxNode
Dim inferredName = node.Expression.TryGetInferredMemberName()
......
......@@ -19,7 +19,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyExpression(
node,
newNode:=MyBase.VisitInvocationExpression(node),
simplifier:=AddressOf SimplifyInvocationExpression)
simplifier:=s_simplifyInvocationExpression)
End Function
Public Overrides Function VisitObjectCreationExpression(node As ObjectCreationExpressionSyntax) As SyntaxNode
......@@ -28,7 +28,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyExpression(
node,
newNode:=MyBase.VisitObjectCreationExpression(node),
simplifier:=AddressOf SimplifyObjectCreationExpression)
simplifier:=s_simplifyObjectCreationExpression)
End Function
Public Overrides Function VisitParameter(node As ParameterSyntax) As SyntaxNode
......@@ -38,9 +38,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
node,
newNode:=MyBase.VisitParameter(node),
parentNode:=node.Parent,
simplifyFunc:=AddressOf SimplifyParameter)
simplifyFunc:=s_simplifyParameter)
End Function
End Class
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -13,6 +13,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyParameter As Func(Of ParameterSyntax, SemanticModel, OptionSet, CancellationToken, ParameterSyntax) = AddressOf SimplifyParameter
Private Shared Function SimplifyParameter(
parameter As ParameterSyntax,
semanticModel As SemanticModel,
......@@ -28,6 +30,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return parameter
End Function
Private Shared ReadOnly s_simplifyInvocationExpression As Func(Of InvocationExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyInvocationExpression
Private Shared Function SimplifyInvocationExpression(
invocationExpression As InvocationExpressionSyntax,
semanticModel As SemanticModel,
......@@ -49,6 +53,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return invocationExpression
End Function
Private Shared ReadOnly s_simplifyObjectCreationExpression As Func(Of ObjectCreationExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyObjectCreationExpression
Private Shared Function SimplifyObjectCreationExpression(
objectCreationExpression As ObjectCreationExpressionSyntax,
semanticModel As SemanticModel,
......
......@@ -23,7 +23,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitGenericName(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......@@ -39,7 +39,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitIdentifierName(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......@@ -55,7 +55,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitQualifiedName(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......@@ -71,7 +71,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitMemberAccessExpression(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......@@ -87,7 +87,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitNullableType(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......@@ -103,7 +103,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Dim result = SimplifyExpression(
node,
newNode:=MyBase.VisitArrayType(node),
simplifier:=AddressOf SimplifyName)
simplifier:=s_simplifyName)
Me._alwaysSimplify = oldAlwaysSimplify
......
......@@ -16,6 +16,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyName As Func(Of ExpressionSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyName
Private Overloads Shared Function SimplifyName(
node As ExpressionSyntax,
semanticModel As SemanticModel,
......
......@@ -17,8 +17,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return SimplifyExpression(
node,
newNode:=MyBase.VisitParenthesizedExpression(node),
simplifier:=AddressOf ReduceParentheses)
simplifier:=s_reduceParentheses)
End Function
End Class
End Class
End Namespace
End Namespace
\ No newline at end of file
......@@ -19,7 +19,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
node,
newNode:=MyBase.VisitVariableDeclarator(node),
parentNode:=node,
simplifyFunc:=AddressOf SimplifyVariableDeclarator)
simplifyFunc:=s_simplifyVariableDeclarator)
End Function
End Class
End Class
......
......@@ -15,6 +15,8 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification
Return New Rewriter(optionSet, cancellationToken)
End Function
Private Shared ReadOnly s_simplifyVariableDeclarator As Func(Of VariableDeclaratorSyntax, SemanticModel, OptionSet, CancellationToken, SyntaxNode) = AddressOf SimplifyVariableDeclarator
Private Overloads Shared Function SimplifyVariableDeclarator(
node As VariableDeclaratorSyntax,
semanticModel As SemanticModel,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册