@@ -58,7 +58,7 @@ public async Task<ExpressionSyntax> ConvertReferenceOrNothingComparisonOrNullAsy
5858
5959 var equalityCheck = new KnownMethod ( nameof ( System ) , nameof ( Object ) , nameof ( object . ReferenceEquals ) )
6060 . Invoke ( _visualBasicEqualityComparison . ExtraUsingDirectives ,
61- ConvertToIfNecessary ( node . Left , lhs , SpecialType . System_Object ) , ConvertToIfNecessary ( node . Right , rhs , SpecialType . System_Object ) ) ;
61+ ConvertTo ( node . Left , lhs , SpecialType . System_Object ) , rhs ) ;
6262 return notted
6363 ? SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . LogicalNotExpression , equalityCheck )
6464 : equalityCheck ;
@@ -80,14 +80,9 @@ private static VBSyntax.ExpressionSyntax ArgComparedToNull(VBSyntax.BinaryExpres
8080 return null ;
8181 }
8282
83- private async Task < ExpressionSyntax > ConvertIsOrIsNotExpressionArgAsync ( VBSyntax . ExpressionSyntax binaryExpressionArg )
84- {
85- if ( binaryExpressionArg is VBSyntax . GetTypeExpressionSyntax getTypeExpr && getTypeExpr . Type . DescendantNodesAndSelf ( ) . OfType < VBSyntax . TypeArgumentListSyntax > ( ) . Any ( t => t . Arguments . Any ( a => a is VBSyntax . IdentifierNameSyntax id && id . Identifier . IsMissing ) ) ) {
86- return await getTypeExpr . AcceptAsync < ExpressionSyntax > ( _triviaConvertingVisitor ) ;
87- }
88- return await ConvertMyGroupCollectionPropertyGetWithUnderlyingFieldAsync ( binaryExpressionArg )
89- ?? await binaryExpressionArg . AcceptAsync < ExpressionSyntax > ( _triviaConvertingVisitor ) ;
90- }
83+ private async Task < ExpressionSyntax > ConvertIsOrIsNotExpressionArgAsync ( VBSyntax . ExpressionSyntax binaryExpressionArg ) =>
84+ await ConvertMyGroupCollectionPropertyGetWithUnderlyingFieldAsync ( binaryExpressionArg )
85+ ?? await binaryExpressionArg . AcceptAsync < ExpressionSyntax > ( _triviaConvertingVisitor ) ;
9186
9287 private async Task < ExpressionSyntax > ConvertMyGroupCollectionPropertyGetWithUnderlyingFieldAsync ( SyntaxNode node )
9388 {
@@ -127,17 +122,6 @@ private ExpressionSyntax ConvertTo(VBSyntax.ExpressionSyntax vbNode, ExpressionS
127122 return _typeConversionAnalyzer . AddExplicitConversion ( vbNode , csNode , forceTargetType : _semanticModel . Compilation . GetSpecialType ( targetType ) ) ;
128123 }
129124
130- private ExpressionSyntax ConvertToIfNecessary ( VBSyntax . ExpressionSyntax vbNode , ExpressionSyntax csNode , SpecialType targetType )
131- {
132- if ( vbNode is VBSyntax . GetTypeExpressionSyntax getTypeExpr && getTypeExpr . Type . DescendantNodesAndSelf ( ) . OfType < VBSyntax . TypeArgumentListSyntax > ( ) . Any ( t => t . Arguments . Any ( a => a is VBSyntax . IdentifierNameSyntax id && id . Identifier . IsMissing ) ) ) {
133- return csNode ;
134- }
135- if ( csNode is TypeOfExpressionSyntax typeOfExpr && typeOfExpr . Type is GenericNameSyntax gen && gen . TypeArgumentList . Arguments . Any ( a => a is OmittedTypeArgumentSyntax ) ) {
136- return csNode ;
137- }
138- return ConvertTo ( vbNode , csNode , targetType ) ;
139- }
140-
141125 /// <remarks>No need to implement these since this is only called for things that are already decimal and hence will resolve operator in C#</remarks>
142126 private static async Task < ExpressionSyntax > ConvertToDecimalBinaryOperatorAsync ( VBSyntax . BinaryExpressionSyntax node , KnownMethod member ) =>
143127 default ;
0 commit comments