93 references to CONVERTTYPE
Microsoft.CSharp (93)
Microsoft\CSharp\RuntimeBinder\RuntimeBinder.cs (2)
1244CONVERTTYPE.CHECKOVERFLOW | CONVERTTYPE.NOUDC);
Microsoft\CSharp\RuntimeBinder\Semantics\Conversion.cs (34)
51CONVERTTYPE flags); 234(!canConvert(GetPredefindType((PredefinedType)i), GetPredefindType((PredefinedType)j), CONVERTTYPE.NOUDC) || s_simpleTypeBetter[i][j] == left) && 235(!canConvert(GetPredefindType((PredefinedType)j), GetPredefindType((PredefinedType)i), CONVERTTYPE.NOUDC) || s_simpleTypeBetter[j][i] == left)); 344private bool canConvert(CType src, CType dest, CONVERTTYPE flags) => BindImplicitConversion(null, src, dest, flags); 357private bool canConvert(Expr expr, CType dest, CONVERTTYPE flags) => 368private Expr mustConvertCore(Expr expr, CType dest, CONVERTTYPE flags) 424private Expr tryConvert(Expr expr, CType dest, CONVERTTYPE flags) 439public Expr mustConvert(Expr expr, CType dest) => mustConvert(expr, dest, (CONVERTTYPE)0); 443private Expr mustConvert(Expr expr, CType dest, CONVERTTYPE flags) => mustConvertCore(expr, dest, flags); 454private Expr mustCastCore(Expr expr, CType dest, CONVERTTYPE flags) 488if (!CanExplicitConversionBeBoundInUncheckedContext(expr, expr.Type, dest, flags | CONVERTTYPE.NOUDC)) 543public Expr mustCast(Expr expr, CType dest, CONVERTTYPE flags) => mustCastCore(expr, dest, flags); 547private Expr MustCastInUncheckedContext(Expr expr, CType dest, CONVERTTYPE flags) => 553private bool canCast(CType src, CType dest, CONVERTTYPE flags) => BindExplicitConversion(null, src, dest, flags); 557private bool BindImplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags) 565private bool BindImplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, out Expr ppDestinationExpr, CONVERTTYPE flags) 575private bool BindImplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out Expr ppDestinationExpr, CONVERTTYPE flags) 585private bool BindExplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out Expr ppDestinationExpr, CONVERTTYPE flags) 595private bool BindExplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, out Expr ppDestinationExpr, CONVERTTYPE flags) 605private bool BindExplicitConversion(Expr pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags) 791bool fFromImplicit = exprSrc != null ? canConvert(exprSrc, typeFrom, CONVERTTYPE.STANDARDANDNOUDC) : canConvert(typeSrc, typeFrom, CONVERTTYPE.STANDARDANDNOUDC); 793!canConvert(typeFrom, typeSrc, CONVERTTYPE.STANDARDANDNOUDC) && 796(!fIntPtrStandard || typeSrc is PointerType || typeFrom is PointerType || !canCast(typeSrc, typeFrom, CONVERTTYPE.NOUDC)))) 800bool fToImplicit = canConvert(typeTo, typeDst, CONVERTTYPE.STANDARDANDNOUDC); 802!canConvert(typeDst, typeTo, CONVERTTYPE.STANDARDANDNOUDC) && 805(!fIntPtrStandard || typeDst is PointerType || typeTo is PointerType || !canCast(typeTo, typeDst, CONVERTTYPE.NOUDC)))) 1131Expr pTransformedArgument = mustCastCore(pFrom, pTypeFrom, CONVERTTYPE.NOUDC); 1135Expr pCast = mustCastCore(pCall, pTypeDestination, CONVERTTYPE.NOUDC); 1362bool fCon1 = canConvert(type1, type2, CONVERTTYPE.NOUDC); 1363bool fCon2 = canConvert(type2, type1, CONVERTTYPE.NOUDC); 1397bool fCon1 = canConvert(type1, type2, CONVERTTYPE.NOUDC); 1398bool fCon2 = canConvert(type2, type1, CONVERTTYPE.NOUDC); 1520private bool CanExplicitConversionBeBoundInUncheckedContext(Expr exprSrc, CType typeSrc, CType typeDest, CONVERTTYPE flags)
Microsoft\CSharp\RuntimeBinder\Semantics\ExplicitConversion.cs (13)
41private readonly CONVERTTYPE _flags; 47public ExplicitConversion(ExpressionBinder binder, Expr exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags) 75Debug.Assert((_flags & CONVERTTYPE.STANDARD) == 0); 101if (_binder.BindImplicitConversion(_exprSrc, _typeSrc, _typeDest, _needsExprDest, out _exprDest, _flags | CONVERTTYPE.ISEXPLICIT)) 179if (0 == (_flags & CONVERTTYPE.NOUDC)) 195if (_typeDest.IsValueType && _binder.BindExplicitConversion(null, _typeSrc.StripNubs(), _typeDest, _flags | CONVERTTYPE.NOUDC)) 206if (!_binder.BindExplicitConversion(valueSrc, valueSrc.Type, _typeDest, _needsExprDest, out _exprDest, _flags | CONVERTTYPE.NOUDC)) 219if ((_flags & CONVERTTYPE.NOUDC) == 0) 365if (_binder.canConvert(GetPredefindType(PredefinedType.PT_ARRAY), _typeSrc, CONVERTTYPE.NOUDC)) 469if (result == ConstCastResult.CheckFailure && 0 == (_flags & CONVERTTYPE.CHECKOVERFLOW)) 528if (result == ConstCastResult.CheckFailure && 0 == (_flags & CONVERTTYPE.CHECKOVERFLOW)) 640if (result == ConstCastResult.CheckFailure && 0 == (_flags & CONVERTTYPE.CHECKOVERFLOW)) 659_binder.bindSimpleCast(_exprSrc, _typeDest, out _exprDest, (_flags & CONVERTTYPE.CHECKOVERFLOW) != 0 ? EXPRFLAG.EXF_CHECKOVERFLOW : 0);
Microsoft\CSharp\RuntimeBinder\Semantics\ExpressionBinder.cs (2)
668if (!(arg.Type is NullableType) || !canConvert(arg.Type.StripNubs(), typeRaw, CONVERTTYPE.NOUDC)) 1025pObject = tryConvert(pObject, swt.GetType(), CONVERTTYPE.NOUDC);
Microsoft\CSharp\RuntimeBinder\Semantics\ImplicitConversion.cs (24)
19public ImplicitConversion(ExpressionBinder binder, Expr exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags) 36private CONVERTTYPE _flags; 119((_flags & CONVERTTYPE.ISEXPLICIT) == 0 || (!_typeSrc.IsPredefType(PredefinedType.PT_FLOAT) && !_typeSrc.IsPredefType(PredefinedType.PT_DOUBLE)))) 138if ((_flags & CONVERTTYPE.ISEXPLICIT) != 0) 140_flags |= CONVERTTYPE.NOUDC; 216if (0 == (_flags & CONVERTTYPE.NOUDC)) 270Debug.Assert(0 != (~_flags & (CONVERTTYPE.STANDARD | CONVERTTYPE.ISEXPLICIT))); 284if (0 == (_flags & CONVERTTYPE.ISEXPLICIT)) 300ConversionFunc pfn = (_flags & CONVERTTYPE.ISEXPLICIT) != 0 ? 326if (_typeSrc == typeDstBase || pfn(_exprSrc, _typeSrc, typeDstBase, _needsExprDest, out exprTmp, _flags | CONVERTTYPE.NOUDC)) 356return 0 == (_flags & CONVERTTYPE.NOUDC) && _binder.bindUserDefinedConversion(_exprSrc, _typeSrc, nubDst, _needsExprDest, out _exprDest, 0 == (_flags & CONVERTTYPE.ISEXPLICIT)); 361if (typeSrcBase != typeDstBase && !pfn(null, typeSrcBase, typeDstBase, false, out _exprDest, _flags | CONVERTTYPE.NOUDC)) 364return 0 == (_flags & CONVERTTYPE.NOUDC) && _binder.bindUserDefinedConversion(_exprSrc, _typeSrc, nubDst, _needsExprDest, out _exprDest, 0 == (_flags & CONVERTTYPE.ISEXPLICIT)); 376bool convertible = (_flags & CONVERTTYPE.ISEXPLICIT) != 0 378arg1, arg1.Type, typeDstBase, out arg1, _flags | CONVERTTYPE.NOUDC) 380arg1, arg1.Type, typeDstBase, out arg1, _flags | CONVERTTYPE.NOUDC); 464return 0 == (_flags & CONVERTTYPE.NOUDC) && _binder.bindUserDefinedConversion(_exprSrc, nubSrc, _typeDest, _needsExprDest, out _exprDest, true); 4990 != (_flags & CONVERTTYPE.FORCECAST)))) 501(0 != (_flags & CONVERTTYPE.FORCECAST) || 6530 == (_flags & CONVERTTYPE.STANDARD)) 705Debug.Assert(0 != (_flags & CONVERTTYPE.ISEXPLICIT));
Microsoft\CSharp\RuntimeBinder\Semantics\Operators.cs (18)
1003if (!canCast(type1, type2, CONVERTTYPE.NOUDC) && !canCast(type2, type1, CONVERTTYPE.NOUDC)) 1313mustCast(pArgument, uofs.GetType(), CONVERTTYPE.NOUDC); 1734return typeTmp != type ? mustCast(pExprResult, type, CONVERTTYPE.NOUDC) : pExprResult; 1758Expr op = mustCast(exprVal, arg.Type, CONVERTTYPE.NOUDC); 2005arg1 = binder.mustConvert(arg1, GetPredefindType(PredefinedType.PT_OBJECT), CONVERTTYPE.NOUDC); 2006arg2 = binder.mustConvert(arg2, GetPredefindType(PredefinedType.PT_OBJECT), CONVERTTYPE.NOUDC); 2073arg1 = binder.mustCast(arg1, typeOp, CONVERTTYPE.NOUDC); 2074arg2 = binder.mustCast(arg2, typeOp, CONVERTTYPE.NOUDC); 2081exprRes = binder.mustCast(exprRes, typeDst, CONVERTTYPE.NOUDC); 2115arg1 = mustCast(arg1, typeOp, CONVERTTYPE.NOUDC); 2116arg2 = mustCast(arg2, typeOp, CONVERTTYPE.NOUDC); 2125return mustCast(exprRes, typeDst, CONVERTTYPE.NOUDC); 2152arg = binder.mustCast(arg, typeOp, CONVERTTYPE.NOUDC); 2155return binder.MustCastInUncheckedContext(exprRes, typeEnum, CONVERTTYPE.NOUDC); 2309op = mustConvertCore(op, GetPredefindType(PredefinedType.PT_LONG), CONVERTTYPE.NOUDC); 2689if (!canConvert(arg1.Type.StripNubs(), paramsRaw[0], CONVERTTYPE.NOUDC)) 2693if (!canConvert(arg2.Type.StripNubs(), paramsRaw[1], CONVERTTYPE.NOUDC))