| File: Microsoft.NetCore.Analyzers\Runtime\BasicTestForEmptyStringsUsingStringLength.Fixer.vb | Web Access |
| Project: src\sdk\src\Microsoft.CodeAnalysis.NetAnalyzers\src\Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers\Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.vbproj (Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers) |
' Copyright (c) Microsoft. All Rights Reserved. Licensed under the MIT license. See License.txt in the project root for license information. Imports System.Composition Imports Microsoft.NetCore.Analyzers.Runtime Imports Microsoft.CodeAnalysis Imports Microsoft.CodeAnalysis.CodeFixes Imports Microsoft.CodeAnalysis.VisualBasic Imports Microsoft.CodeAnalysis.VisualBasic.Syntax Namespace Microsoft.NetCore.VisualBasic.Analyzers.Runtime ''' <summary> ''' CA1820: Test for empty strings using string length ''' </summary> <ExportCodeFixProvider(LanguageNames.VisualBasic), [Shared]> Public NotInheritable Class BasicTestForEmptyStringsUsingStringLengthFixer Inherits TestForEmptyStringsUsingStringLengthFixer Protected Overrides Function GetExpression(node As SyntaxNode) As SyntaxNode Dim argumentSyntax = TryCast(node, ArgumentSyntax) Return If(argumentSyntax IsNot Nothing, argumentSyntax.GetExpression(), node) End Function Protected Overrides Function IsEqualsOperator(node As SyntaxNode) As Boolean Return node.IsKind(SyntaxKind.EqualsExpression) End Function Protected Overrides Function IsNotEqualsOperator(node As SyntaxNode) As Boolean Return node.IsKind(SyntaxKind.NotEqualsExpression) End Function Protected Overrides Function GetLeftOperand(binaryExpressionSyntax As SyntaxNode) As SyntaxNode Return DirectCast(binaryExpressionSyntax, BinaryExpressionSyntax).Left End Function Protected Overrides Function GetRightOperand(binaryExpressionSyntax As SyntaxNode) As SyntaxNode Return DirectCast(binaryExpressionSyntax, BinaryExpressionSyntax).Right End Function Protected Overrides Function IsFixableBinaryExpression(node As SyntaxNode) As Boolean Return (TypeOf node Is BinaryExpressionSyntax) AndAlso (IsEqualsOperator(node) Or IsNotEqualsOperator(node)) End Function Protected Overrides Function IsFixableInvocationExpression(node As SyntaxNode) As Boolean Return node.IsKind(SyntaxKind.InvocationExpression) End Function Protected Overrides Function GetInvocationTarget(node As SyntaxNode) As SyntaxNode Dim invocationExpression = TryCast(node, InvocationExpressionSyntax) If invocationExpression IsNot Nothing Then Dim memberAccessExpression = TryCast(invocationExpression.Expression, MemberAccessExpressionSyntax) If memberAccessExpression IsNot Nothing Then Return memberAccessExpression.Expression End If End If Return Nothing End Function End Class End Namespace