@@ -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 ) , ConvertTo ( node . Right , rhs , SpecialType . System_Object ) ) ;
6262 return notted
6363 ? SyntaxFactory . PrefixUnaryExpression ( SyntaxKind . LogicalNotExpression , equalityCheck )
6464 : equalityCheck ;
@@ -82,9 +82,6 @@ private static VBSyntax.ExpressionSyntax ArgComparedToNull(VBSyntax.BinaryExpres
8282
8383 private async Task < ExpressionSyntax > ConvertIsOrIsNotExpressionArgAsync ( VBSyntax . ExpressionSyntax binaryExpressionArg )
8484 {
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- }
8885 return await ConvertMyGroupCollectionPropertyGetWithUnderlyingFieldAsync ( binaryExpressionArg )
8986 ?? await binaryExpressionArg . AcceptAsync < ExpressionSyntax > ( _triviaConvertingVisitor ) ;
9087 }
@@ -127,18 +124,7 @@ private ExpressionSyntax ConvertTo(VBSyntax.ExpressionSyntax vbNode, ExpressionS
127124 return _typeConversionAnalyzer . AddExplicitConversion ( vbNode , csNode , forceTargetType : _semanticModel . Compilation . GetSpecialType ( targetType ) ) ;
128125 }
129126
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-
141- /// <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>
127+ /// <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>
142128 private static async Task < ExpressionSyntax > ConvertToDecimalBinaryOperatorAsync ( VBSyntax . BinaryExpressionSyntax node , KnownMethod member ) =>
143129 default ;
144130
0 commit comments