Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder
struct ExpressionBinder
namespace Microsoft.CSharp.RuntimeBinder.Semantics
{
internal readonly struct ExpressionBinder
{
private delegate bool ConversionFunc (Expr pSourceExpr, CType pSourceType, CType pDestinationType, bool needsExprDest, out Expr ppDestinationExpr, CONVERTTYPE flags);
private delegate Expr PfnBindBinOp (ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags, Expr op1, Expr op2);
private delegate Expr PfnBindUnaOp (ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags, Expr op);
public enum NamedArgumentsKind
{
None,
Positioning,
NonTrailing
}
public BindingContext Context { get; }
public bool canConvert(CType src, CType dest);
public Expr tryConvert(Expr expr, CType dest);
public Expr mustConvert(Expr expr, CType dest);
public Expr mustCast(Expr expr, CType dest);
public Expr mustCast(Expr expr, CType dest, CONVERTTYPE flags);
public ExpressionBinder(BindingContext context);
public Expr BindAssignment(Expr op1, Expr op2, bool allowExplicit);
public static bool IsMethPropCallable(MethodOrPropertySymbol sym, bool requireUC);
public Expr BindStandardBinop(ExpressionKind ek, Expr arg1, Expr arg2);
public Expr BindStandardUnaryOperator(OperatorKind op, Expr pArgument);
}
}