| File: Simplification\Reducers\VisualBasicMiscellaneousReducer.vb | Web Access |
| Project: src\roslyn\src\Workspaces\VisualBasic\Portable\Microsoft.CodeAnalysis.VisualBasic.Workspaces.vbproj (Microsoft.CodeAnalysis.VisualBasic.Workspaces) |
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Threading Imports Microsoft.CodeAnalysis.PooledObjects Imports Microsoft.CodeAnalysis.Simplification Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.CodeAnalysis.VisualBasic.Simplification Partial Friend Class VisualBasicMiscellaneousReducer Inherits AbstractVisualBasicReducer Private Shared ReadOnly s_pool As ObjectPool(Of IReductionRewriter) = New ObjectPool(Of IReductionRewriter)(Function() New Rewriter(s_pool)) Private Shared ReadOnly s_simplifyParameter As Func(Of ParameterSyntax, SemanticModel, SimplifierOptions, CancellationToken, ParameterSyntax) = AddressOf SimplifyParameter Public Sub New() MyBase.New(s_pool) End Sub Public Overrides Function IsApplicable(options As VisualBasicSimplifierOptions) As Boolean Return True End Function Private Shared Function SimplifyParameter( parameter As ParameterSyntax, semanticModel As SemanticModel, options As SimplifierOptions, cancellationToken As CancellationToken ) As ParameterSyntax If parameter.CanRemoveAsClause(semanticModel, cancellationToken) Then Dim newParameter = parameter.WithAsClause(Nothing).NormalizeWhitespace() newParameter = SimplificationHelpers.CopyAnnotations(parameter, newParameter).WithoutAnnotations(Simplifier.Annotation) Return newParameter End If Return parameter End Function Private Shared ReadOnly s_simplifyInvocationExpression As Func(Of InvocationExpressionSyntax, SemanticModel, SimplifierOptions, CancellationToken, SyntaxNode) = AddressOf SimplifyInvocationExpression Private Shared Function SimplifyInvocationExpression( invocationExpression As InvocationExpressionSyntax, semanticModel As SemanticModel, options As SimplifierOptions, cancellationToken As CancellationToken ) As InvocationExpressionSyntax If invocationExpression.CanRemoveEmptyArgumentList(semanticModel) Then Dim resultNode = invocationExpression _ .WithArgumentList(Nothing) _ .WithTrailingTrivia(invocationExpression.GetTrailingTrivia()) resultNode = SimplificationHelpers.CopyAnnotations(invocationExpression, resultNode) Return resultNode End If ' We don't know how to simplify this. Return invocationExpression End Function Private Shared ReadOnly s_simplifyObjectCreationExpression As Func(Of ObjectCreationExpressionSyntax, SemanticModel, SimplifierOptions, CancellationToken, SyntaxNode) = AddressOf SimplifyObjectCreationExpression Private Shared Function SimplifyObjectCreationExpression( objectCreationExpression As ObjectCreationExpressionSyntax, semanticModel As SemanticModel, options As SimplifierOptions, cancellationToken As CancellationToken ) As ObjectCreationExpressionSyntax If objectCreationExpression.CanRemoveEmptyArgumentList() Then Dim resultNode = objectCreationExpression _ .WithArgumentList(Nothing) _ .WithTrailingTrivia(objectCreationExpression.GetTrailingTrivia()) resultNode = SimplificationHelpers.CopyAnnotations(objectCreationExpression, resultNode) Return resultNode End If ' We don't know how to simplify this. Return objectCreationExpression End Function End Class End Namespace