Binding\Binder_Conversions.vb (59)
87Dim conv As ConversionKind = Conversions.ClassifyDirectCastConversion(argument, targetType, Me, useSiteInfo)
120If Conversions.NoConversion(conv) Then
130If Conversions.NoConversion(conv) Then
135If Conversions.IsIdentityConversion(conv) Then
146Dim constantResult = Conversions.TryFoldConstantConversion(
152Debug.Assert(Conversions.IsIdentityConversion(conv) OrElse
158constantResult = Conversions.TryFoldNothingReferenceConversion(argument, conv, targetType)
197conv = Conversions.ClassifyTryCastConversion(argument, targetType, Me, useSiteInfo)
233If Conversions.NoConversion(conv) Then
253If Conversions.NoConversion(conv) Then
258Dim constantResult = Conversions.TryFoldNothingReferenceConversion(argument, conv, targetType)
359conv = Conversions.ClassifyConversionOfOperandOfConditionalBranch(argument, targetType, Me,
395conv = Conversions.ClassifyConversion(argument, targetType, Me, useSiteInfo)
433If (Not isExplicit OrElse explicitSemanticForConcatArgument) AndAlso Conversions.IsIdentityConversion(convKind.Key) Then
478Conversions.IsNarrowingConversion(convKind.Key) AndAlso
479Conversions.IsNarrowingConversion(Conversions.ClassifyArrayLiteralConversion(DirectCast(argument, BoundArrayLiteral), sourceType, Me, useSiteInfo))
499If Conversions.NoConversion(convKind.Key) Then
510If Not isExplicit AndAlso Conversions.IsNarrowingConversion(convKind.Key) AndAlso
571If Conversions.NoConversion(convKind.Key) Then
572If Conversions.FailedDueToNumericOverflow(convKind.Key) Then
733Conversions.IsWideningConversion(Conversions.Classify_Reference_Array_TypeParameterConversion(sourceTypeArgument,
836conv = Conversions.Classify_Reference_Array_TypeParameterConversion(sourceArg, destinationArg,
840If Not Conversions.IsWideningConversion(conv) Then
841If Not Conversions.IsNarrowingConversion(conv) OrElse (conv And ConversionKind.VarianceConversionAmbiguity) = 0 Then
850conv = Conversions.Classify_Reference_Array_TypeParameterConversion(destinationArg, sourceArg,
854If Not Conversions.IsWideningConversion(conv) Then
856Not Conversions.IsNarrowingConversion(conv) OrElse
864conv = Conversions.ClassifyDirectCastConversion(sourceArg, destinationArg, useSiteInfo)
866If Conversions.IsWideningConversion(conv) Then
869conv = Conversions.ClassifyDirectCastConversion(destinationArg, sourceArg, useSiteInfo)
871If Conversions.IsWideningConversion(conv) Then
977Debug.Assert(Conversions.ConversionExists(convKind) AndAlso (convKind And ConversionKind.UserDefined) = 0)
985If isExplicit OrElse OptionStrict <> VisualBasic.OptionStrict.On OrElse Conversions.IsWideningConversion(convKind) Then
986Debug.Assert(Not Conversions.IsIdentityConversion(convKind))
1030Dim constantResult = Conversions.TryFoldConstantConversion(
1040constantResult = Conversions.TryFoldNothingReferenceConversion(argument, convKind, targetType)
1104intermediateConv = Conversions.ClassifyArrayLiteralConversion(arrayLiteral, inType, arrayLiteralBinder, useSiteInfo)
1113intermediateConv = Conversions.ClassifyPredefinedConversion(argument, inType, conversionBinder, useSiteInfo)
1115If Not Conversions.IsIdentityConversion(intermediateConv) Then
1146intermediateConv = Conversions.ClassifyPredefinedConversion(argument, targetType, conversionBinder, useSiteInfo)
1148If Not Conversions.IsIdentityConversion(intermediateConv) Then
1234If Conversions.ConversionExists(delegateResolutionResult.DelegateConversions) Then
1312Debug.Assert(Conversions.NoConversion(convKind) AndAlso (convKind And ConversionKind.DelegateRelaxationLevelMask) = 0)
1314Debug.Assert(Conversions.NoConversion(convKind) OrElse
1377Debug.Assert(Conversions.NoConversion(convKind))
1395Debug.Assert(Conversions.ClassifyMethodConversionForLambdaOrAnonymousDelegate(delegateInvoke, boundLambda.LambdaSymbol, CompoundUseSiteInfo(Of AssemblySymbol).Discarded) = MethodConversionKind.Identity OrElse
1426ElseIf Conversions.IsStubRequiredForMethodConversion(boundLambda.MethodConversionKind) Then
1427Debug.Assert(Conversions.IsDelegateRelaxationSupportedFor(boundLambda.MethodConversionKind))
1504If Conversions.NoConversion(convKind) Then
1523Conversions.FailedDueToQueryLambdaBodyMismatch(convKind) Then
1693If Conversions.IsNarrowingConversion(convKind) Then
1713Not Conversions.IsWideningConversion(Conversions.ClassifyDirectCastConversion(classType, interfaceType, useSiteInfo)) Then
1751Dim elemConv = Conversions.ClassifyDirectCastConversion(sourceElement, targetElement, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
1753If Not Conversions.IsIdentityConversion(elemConv) AndAlso
1759ElseIf Not Conversions.IsIdentityConversion(elemConv) AndAlso
1760Not (Conversions.IsWideningConversion(elemConv) AndAlso
Binding\Binder_Invocation.vb (16)
1042Conversions.ClassifyConversion(receiver, targetType, Me, useSiteInfo),
1044Conversions.ClassifyConversion(targetType, receiver.Type, useSiteInfo),
2502Dim conv As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(boundTemp, copyBackType, Me, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
2504If Conversions.NoConversion(conv.Key) Then
2507ElseIf Conversions.IsNarrowingConversion(conv.Key) Then
2560Dim conv As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(argument, targetType, Me, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
2562If Conversions.NoConversion(conv.Key) Then
2575If Conversions.IsNarrowingConversion(conv.Key) Then
2705Dim conversion As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.Identity
2706Dim conversionBack As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.Identity
2716Conversions.Identity,
2832Dim checkAgainst As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(argument, targetType, Me, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
2845If isLValue AndAlso Conversions.IsIdentityConversion(conversionTo.Key) Then
2847Debug.Assert(Conversions.IsIdentityConversion(conversionFrom.Key))
2866checkAgainst = Conversions.ClassifyConversion(outPlaceholder, copyBackType, Me, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
2967Dim checkAgainst As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(argument, targetType, Me, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)
Binding\Binder_Statements.vb (11)
3427If Conversions.IsIdentityConversion(Conversions.ClassifyConversion(elementType, currentType, useSiteInfo:=CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key) Then
3441Not Conversions.IsIdentityConversion(Conversions.ClassifyConversion(controlVariableType, elementType, useSiteInfo:=CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key) Then
3482Dim conversionKind As ConversionKind = Conversions.ClassifyTryCastConversion(enumeratorType, idisposableType, useSiteInfo)
3967Dim conversionKind = Conversions.ClassifyDirectCastConversion(getEnumeratorReturnType, idisposable, useSiteInfo)
3971isOrInheritsFromOrImplementsIDisposable = Conversions.IsWideningConversion(conversionKind)
4573Dim conversionKind = Conversions.ClassifyDirectCastConversion(resourceType, iDisposable, useSiteInfo)
4580Dim isValidDispose = Conversions.IsWideningConversion(conversionKind)
5030Not Conversions.ConversionExists(Conversions.ClassifyConversion(arg, retType, Me, useSiteInfo).Key) Then
Lowering\LocalRewriter\LocalRewriter_Conversion.vb (34)
13If Not _inExpressionLambda AndAlso Conversions.IsIdentityConversion(node.ConversionKind) Then
314Debug.Assert(Not Conversions.IsIdentityConversion(node.ConversionKind))
387If Conversions.IsIdentityConversion(node.ConversionKind) Then
425Dim convKind = Conversions.ClassifyConversion(rewrittenOperand.Type, innerTargetType, useSiteInfo).Key
426Debug.Assert(Conversions.ConversionExists(convKind))
452Dim convKind = Conversions.ClassifyDirectCastConversion(unwrappedOperand.Type, resultType, useSiteInfo)
453Debug.Assert(Conversions.ConversionExists(convKind))
535Dim convKind = Conversions.ClassifyConversion(operand.Type, unwrappedResultType, useSiteInfo).Key
536Debug.Assert(Conversions.ConversionExists(convKind))
541Dim constantResult = Conversions.TryFoldConstantConversion(operand, unwrappedResultType, integerOverflow)
604Dim convKind = Conversions.ClassifyConversion(operandType, innerTargetType, useSiteInfo).Key
605Debug.Assert(Conversions.ConversionExists(convKind))
627Dim convKind = Conversions.ClassifyDirectCastConversion(rewrittenOperand.Type, resultType, useSiteInfo)
628Debug.Assert(Conversions.ConversionExists(convKind))
654Dim convKind = Conversions.ClassifyDirectCastConversion(unwrappedOperand.Type, resultType, useSiteInfo)
655Debug.Assert(Conversions.ConversionExists(convKind))
667Dim convKind = Conversions.ClassifyDirectCastConversion(rewrittenOperand.Type, resultType, useSiteInfo)
668Debug.Assert(Conversions.ConversionExists(convKind))
807(Conversions.IsIdentityConversion(rewrittenConversion.ConversionKind) AndAlso
892Conversions.ClassifyDirectCastConversion(operand.Type, objectType, useSiteInfo),
909Conversions.ClassifyDirectCastConversion(node.Operand.Type, node.Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded))
967Conversions.ClassifyDirectCastConversion(operand.Type, typeFrom, useSiteInfo),
985Debug.Assert(conv = Conversions.ClassifyConversion(memberSymbol.ReturnType, targetResultType, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1058Debug.Assert(conv = Conversions.ClassifyConversion(operandType, memberSymbol.Parameters(0).Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1130Debug.Assert(conv = Conversions.ClassifyConversion(memberSymbol.ReturnType, targetResultType, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1197Debug.Assert(conv = Conversions.ClassifyConversion(operandType, memberSymbol.Parameters(0).Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1267Debug.Assert(conv = Conversions.ClassifyConversion(memberSymbol.ReturnType, targetResultType, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1304Debug.Assert(ConversionKind.WideningNumeric = Conversions.ClassifyConversion(typeFrom, mathRound.Parameters(0).Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1313Debug.Assert(node.ConversionKind = Conversions.ClassifyConversion(mathRound.ReturnType, node.Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key)
1373If Not _inExpressionLambda AndAlso Conversions.IsIdentityConversion(node.ConversionKind) Then
1399If Not _inExpressionLambda AndAlso Conversions.IsIdentityConversion(node.ConversionKind) Then
1413If Conversions.IsWideningConversion(node.ConversionKind) AndAlso
1414Not Conversions.IsIdentityConversion(node.ConversionKind) Then
1424Debug.Assert(node.ConversionKind = Conversions.ClassifyDirectCastConversion(operand.Type, node.Type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded))
Lowering\LocalRewriter\LocalRewriter_LateBindingHelpers.vb (7)
28Dim convKind = Conversions.ClassifyDirectCastConversion(rewrittenReceiver.Type, objectType, useSiteInfo)
133Dim convKind = Conversions.ClassifyDirectCastConversion(argument.Type, objectType, useSiteInfo)
174Dim convKind = Conversions.ClassifyDirectCastConversion(rewrittenValue.Type, objectType, useSiteInfo)
221Dim convKind = Conversions.ClassifyDirectCastConversion(argument.Type, objectType, useSiteInfo)
237Dim convKind = Conversions.ClassifyDirectCastConversion(rewrittenValue.Type, objectType, useSiteInfo)
287Dim convKind = Conversions.ClassifyDirectCastConversion(argument.Type, objectType, useSiteInfo)
390Dim conversionKind = Conversions.ClassifyDirectCastConversion(objectType, targetType, useSiteInfo)
Lowering\SyntheticBoundNodeFactory.vb (6)
353Dim conversion = Conversions.ClassifyDirectCastConversion(expression.Type, Me.CurrentMethod.ReturnType, useSiteInfo)
354Debug.Assert(Conversions.IsWideningConversion(conversion))
357If Not Conversions.IsIdentityConversion(conversion) Then
627Return New BoundTryCast(Me.Syntax, expression, Conversions.ClassifyTryCastConversion(expression.Type, type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded), type)
641Conversions.ClassifyDirectCastConversion(expression.Type, type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded)),
986Return Convert(type, arg, Conversions.ClassifyConversion(arg.Type, type, CompoundUseSiteInfo(Of AssemblySymbol).Discarded).Key, isChecked)
Semantics\Conversions.vb (63)
44Return Not Conversions.NoConversion(_convKind)
53Return Conversions.IsNarrowingConversion(_convKind)
62Return Conversions.IsWideningConversion(_convKind)
74Return Conversions.IsIdentityConversion(_convKind)
569If Conversions.NoConversion(conv) Then
592If Not (Conversions.IsIdentityConversion(conv) AndAlso sourceEnum.IsSameTypeIgnoringAll(targetEnum)) Then
597ElseIf Conversions.IsWideningConversion(conv) Then
605Debug.Assert(Conversions.IsNarrowingConversion(conv))
621Debug.Assert(Conversions.IsIdentityConversion(conv) OrElse (conv And ConversionKind.InvolvesEnumTypeConversions) <> 0)
645If Conversions.IsNarrowingConversion(conv) Then
648ElseIf Not Conversions.IsIdentityConversion(conv) Then
649Debug.Assert(Conversions.IsWideningConversion(conv))
653Debug.Assert(Conversions.IsIdentityConversion(conv) AndAlso sourceNullable.IsSameTypeIgnoringAll(targetNullable))
665If Conversions.IsWideningConversion(conv) Then
670Debug.Assert(Conversions.IsNarrowingConversion(conv))
1192If Conversions.NoConversion(conv) Then
1197If Conversions.NoConversion(conv) Then
1204If Conversions.NoConversion(arrayLiteralElementConv) Then
1209If Conversions.IsWideningConversion(conv) Then
1456Dim conv As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(operand, booleanType, binder, useSiteInfo)
1459If Conversions.IsWideningConversion(conv.Key) Then
1474convToNullableOfBoolean = Conversions.Identity
1483convToNullableOfBoolean = Conversions.ClassifyConversion(operand, nullableOfBoolean, binder, useSiteInfo)
1487If Conversions.IsWideningConversion(convToNullableOfBoolean.Key) Then
1510ElseIf Conversions.IsNarrowingConversion(convToNullableOfBoolean.Key) AndAlso
2339If Not Conversions.ClassifyAsReferenceType(source, srcIsClassType, srcIsDelegateType, srcIsInterfaceType, srcIsArrayType) OrElse
2340Not Conversions.ClassifyAsReferenceType(destination, dstIsClassType, dstIsDelegateType, dstIsInterfaceType, dstIsArrayType) Then
2440Debug.Assert(source IsNot Nothing AndAlso Conversions.IsArrayType(source))
2441Debug.Assert(destination IsNot Nothing AndAlso Conversions.IsInterfaceType(destination))
2517If Conversions.IsWideningConversion(conv) AndAlso
2531Debug.Assert(source IsNot Nothing AndAlso Conversions.IsDelegateType(source))
2532Debug.Assert(destination IsNot Nothing AndAlso Conversions.IsDelegateType(destination))
2611(Conversions.IsInterfaceType(source) OrElse Conversions.IsClassType(source) OrElse Conversions.IsValueType(source)))
2612Debug.Assert(destination IsNot Nothing AndAlso Conversions.IsInterfaceType(destination))
2619If Conversions.IsInterfaceType(source) Then
2646Debug.Assert(Conversions.IsInterfaceType(source) AndAlso Conversions.IsInterfaceType(destination))
2699Debug.Assert(Conversions.IsInterfaceType(source) OrElse Conversions.IsDelegateType(source))
2700Debug.Assert(Conversions.IsInterfaceType(destination) OrElse Conversions.IsDelegateType(destination))
2701Debug.Assert(Conversions.IsInterfaceType(source) = Conversions.IsInterfaceType(destination))
2756Dim classifyingInterfaceConversions As Boolean = Conversions.IsInterfaceType(source)
2932(Conversions.IsClassType(derivedType) OrElse Conversions.IsArrayType(derivedType) OrElse Conversions.IsValueType(derivedType)))
2933Debug.Assert(baseType IsNot Nothing AndAlso Conversions.IsClassType(baseType))
2974If Conversions.IsNarrowingMethodConversion(methodConversion, isForAddressOf:=True) Then
3011If Not Conversions.IsArrayType(source) OrElse Not Conversions.IsArrayType(destination) Then
4123If Conversions.NoConversion(conversion) Then
4125ElseIf Conversions.IsNarrowingConversion(conversion) Then
4127ElseIf Not Conversions.IsIdentityConversion(conversion) Then
4128Debug.Assert(Conversions.IsWideningConversion(conversion))
4130If Conversions.IsCLRPredefinedConversion(conversion) AndAlso
4156Dim methodConversions = Conversions.ClassifyMethodConversionBasedOnReturn(lambdaOrDelegateInvokeSymbol.ReturnType, lambdaOrDelegateInvokeSymbol.ReturnsByRef,
4205Conversions.ClassifyMethodConversionBasedOnArgumentConversion(
4206Conversions.ClassifyConversion(toParameterType, lambdaParameterType, useSiteInfo).Key,
4212Conversions.ClassifyMethodConversionBasedOnArgumentConversion(
4213Conversions.ClassifyConversion(lambdaParameterType, toParameterType, useSiteInfo).Key,
Semantics\Operators.vb (43)
440If Conversions.HasWideningDirectCastConversionButNotEnumTypeConversion(targetType, sourceType, useSiteInfo) Then
449ElseIf Conversions.HasWideningDirectCastConversionButNotEnumTypeConversion(sourceType, targetType, useSiteInfo) Then
2128If Not (Conversions.IsWideningConversion(conversionIn) AndAlso Conversions.IsWideningConversion(conversionOut)) Then
2132If Not (Conversions.IsIdentityConversion(conversionIn) AndAlso Conversions.IsIdentityConversion(conversionOut)) Then
2147If Conversions.IsIdentityConversion(conversionIn) AndAlso Conversions.IsIdentityConversion(conversionOut) Then
2153If Conversions.IsIdentityConversion(conversionIn) Then
2157If Conversions.IsIdentityConversion(conversionOut) Then
2324conversionIn = Conversions.ClassifyArrayLiteralConversion(arrayLiteral, inputType, arrayLiteral.Binder, useSiteInfo)
2325If Conversions.IsWideningConversion(conversionIn) AndAlso
2330conversionIn = Conversions.ClassifyPredefinedConversion(source, inputType, useSiteInfo)
2333conversionOut = Conversions.ClassifyPredefinedConversion(outputType, destination, useSiteInfo)
2351If Conversions.ConversionExists(Conversions.ClassifyPredefinedConversion(inputType, outputType, localUseSiteInfo)) OrElse
2472Debug.Assert(Not (Conversions.IsWideningConversion(conversionIn) AndAlso Conversions.IsWideningConversion(conversionOut)))
2484If Not (Conversions.ConversionExists(conversionIn) AndAlso Conversions.ConversionExists(conversionOut)) Then
2488If Not (Conversions.IsIdentityConversion(conversionIn) AndAlso Conversions.IsIdentityConversion(conversionOut)) Then
2503If Conversions.IsIdentityConversion(conversionIn) AndAlso Conversions.IsIdentityConversion(conversionOut) Then
2509If Conversions.IsWideningConversion(conversionIn) Then
2510If Conversions.IsIdentityConversion(conversionIn) Then
2516If Conversions.IsWideningConversion(conversionOut) Then
2517If Conversions.IsIdentityConversion(conversionOut) Then
2523Debug.Assert(Conversions.IsNarrowingConversion(conversionOut))
2526Debug.Assert(Conversions.IsNarrowingConversion(conversionIn))
2528If Conversions.IsIdentityConversion(conversionOut) Then
2530ElseIf Not Conversions.IsNarrowingConversion(conversionOut) Then
2531Debug.Assert(Conversions.IsWideningConversion(conversionOut) AndAlso Not Conversions.IsIdentityConversion(conversionOut))
2544Debug.Assert(Conversions.IsNarrowingConversion(conversionOut))
2593If Not Conversions.IsWideningConversion(conversionKinds(i).Key) Then
2597Debug.Assert(Conversions.IsNarrowingConversion(conversionKinds(i).Key))
2625If Not Conversions.IsWideningConversion(conversionKinds(i).Value) Then
2629Debug.Assert(Conversions.IsNarrowingConversion(conversionKinds(i).Value))
2695Dim conv As ConversionKind = Conversions.ClassifyPredefinedConversion(type, typeSet(j), useSiteInfo)
2697If Not Conversions.IsWideningConversion(conv) Then
2740Dim conv As ConversionKind = Conversions.ClassifyPredefinedConversion(typeSet(j), type, useSiteInfo)
2742If Not Conversions.IsWideningConversion(conv) Then
Semantics\OverloadResolution.vb (34)
2025Dim leftToRightConversion = Conversions.ClassifyConversion(left, right, useSiteInfo)
2029If Conversions.IsIdentityConversion(leftToRightConversion.Key) Then
2034If Conversions.IsWideningConversion(leftToRightConversion.Key) Then
2039If Conversions.IsWideningConversion(Conversions.ClassifyConversion(right, left, useSiteInfo).Key) Then
2057If Conversions.IsWideningConversion(Conversions.ClassifyConversion(right, left, useSiteInfo).Key) Then
2400If Conversions.IsNarrowingConversion(conv.Key) Then
2552IsUnwrappingNullable(Conversions.ClassifyPredefinedConversion(sourceType, targetType, useSiteInfo), sourceType, targetType)
2965ElseIf Conversions.IsNarrowingConversion(arrayConversion.Key) Then
2978Debug.Assert(Conversions.IsWideningConversion(arrayConversion.Key))
2982If Not Conversions.IsIdentityConversion(arrayConversion.Key) Then
2986conversionKinds(i) = Conversions.Identity
3046If Not Conversions.IsIdentityConversion(conv.Key) Then
3050conversionKinds(i) = Conversions.Identity
3125conversionBack = Conversions.Identity
3130If Not Conversions.IsIdentityConversion(conversion.Key) Then
3134conversionKinds(i) = Conversions.Identity
3155If Not Conversions.IsIdentityConversion(conversionBack.Key) Then
3161conversionBackKinds(i) = Conversions.Identity
3214outConversionKind = Conversions.Identity
3215outConversionBackKind = Conversions.Identity
3218outConversionBackKind = Conversions.Identity
3224Dim conv As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(targetType, copyBackType, useSiteInfo)
3227If Conversions.NoConversion(conv.Key) Then
3231If Conversions.IsNarrowingConversion(conv.Key) Then
3269outConversionBackKind = Conversions.Identity
3300Dim conv As KeyValuePair(Of ConversionKind, MethodSymbol) = Conversions.ClassifyConversion(argument, targetType, binder, useSiteInfo)
3304If Conversions.NoConversion(conv.Key) Then
3346If Conversions.IsNarrowingConversion(conv.Key) Then
3440outConvKind = Conversions.ClassifyConversion(expression, targetType, binder, useSiteInfo)
3443If Conversions.IsWideningConversion(outConvKind.Key) Then
3450Debug.Assert(Conversions.IsNarrowingConversion(outConvKind.Key))
4764Return Conversions.HasWideningDirectCastConversionButNotEnumTypeConversion(instanceType, receiverType, useSiteInfo)
Semantics\TypeInference\TypeInferenceCollection.vb (32)
263conversion = Conversions.ClassifyConversion(inner.ResultType, outer.ResultType, useSiteInfo).Key
267conversion = Conversions.ClassifyConversion(arrayLiteral, outer.ResultType, arrayLiteral.Binder, useSiteInfo).Key
268If Conversions.IsWideningConversion(conversion) AndAlso
274If Not Conversions.IsWideningConversion(conversion) Then
438conversion = Conversions.ClassifyDirectCastConversion(hint, candidate, useSiteInfo)
440If Not Conversions.IsIdentityConversion(conversion) Then
450conversion = Conversions.ClassifyConversion(hint, candidate, useSiteInfo).Key
454conversion = Conversions.ClassifyConversion(arrayLiteral, candidate, arrayLiteral.Binder, useSiteInfo).Key
455If Conversions.IsWideningConversion(conversion) Then
475conversion = Conversions.ClassifyConversion(candidate, hint, useSiteInfo).Key
479Dim inConversion As ConversionKind = Conversions.ClassifyConversion(hint, candidate, useSiteInfo).Key
482Dim outConversion As ConversionKind = Conversions.ClassifyConversion(candidate, hint, useSiteInfo).Key
485If Conversions.NoConversion(inConversion) OrElse Conversions.NoConversion(outConversion) Then
487ElseIf Conversions.IsNarrowingConversion(inConversion) OrElse Conversions.IsNarrowingConversion(outConversion) Then
489ElseIf Conversions.IsIdentityConversion(inConversion) AndAlso Conversions.IsIdentityConversion(outConversion) Then
492Debug.Assert(Conversions.IsWideningConversion(inConversion) AndAlso Conversions.IsWideningConversion(outConversion) AndAlso
493Not (Conversions.IsIdentityConversion(inConversion) AndAlso Conversions.IsIdentityConversion(outConversion)))
498conversion = Conversions.ClassifyArrayElementConversion(hint, candidate, useSiteInfo)
503conversion = Conversions.ClassifyDirectCastConversion(hint, candidate, useSiteInfo)
510If Conversions.IsNarrowingConversion(conversion) Then
523conversion = Conversions.ClassifyDirectCastConversion(candidate, hint, useSiteInfo)
526If Conversions.IsNarrowingConversion(conversion) Then
539If Conversions.NoConversion(conversion) Then
541ElseIf Conversions.IsNarrowingConversion(conversion) Then
543ElseIf Conversions.IsIdentityConversion(conversion) Then
545ElseIf Conversions.IsWideningConversion(conversion) Then
588competitor.InferenceRestrictions = Conversions.CombineConversionRequirements(