public static object GenFxyCall(FuncDef fd, object a, object b) { ValueKind kind = OPs.MaxKindOf(a, b); if (fd.resultCanBeLazy) { kind = ValueKind.Async; } else if (kind == ValueKind.Const && fd.isNotPure) { kind = ValueKind.Sync; } return(GenFxyCall((Fxy)fd.func, a, b, kind, fd.resultCanBeLazy)); }
public CallExpr(Delegate func, IList <Expr> args) : base(ExprType.Call, args) { funcName = func.Method.Name; funcDef = defs.GetOrAdd(func, f => new FuncDef(f, f.Method.Name)); }
public CallExpr(FuncDef fd, IList <Expr> args) : base(ExprType.Call, args) { this.funcName = fd.name; this.funcDef = fd; }
public CallExpr(CallExpr ce, IList <Expr> args) : base(ExprType.Call, args) { this.funcName = ce.funcName; this.funcDef = ce.funcDef; }