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