public static DyObject ExternalFunctionFailure(this ExecutionContext ctx, DyFunction func, string error) { var functionName = func.Self is null ? func.FunctionName : $"{func.Self.TypeName}.{func.FunctionName}"; ctx.Error = new(DyError.ExternalFunctionFailure, functionName, error); return(Nil); }
internal override void SetInstanceMember(ExecutionContext ctx, HashString name, DyFunction func) { if ((string)name is Builtins.Get or Builtins.Set or Builtins.Length) { ctx.OverloadProhibited(this, (string)name); return; } base.SetInstanceMember(ctx, name, func); }
private static (DyVariant err, CallStackTrace?trace) GetErrorInformation(DyFunction func, Exception ex) { if (ex is DyCodeException err) { return(err.Error, err.CallTrace); } if (ex.InnerException is not null) { return(GetErrorInformation(func, ex.InnerException)); } var functionName = func.Self is null ? func.FunctionName : $"{func.Self.TypeName}.{func.FunctionName}"; return(new(DyError.ExternalFunctionFailure, functionName, ex.Message), null); }
public EqualityComparer(ExecutionContext ctx, DyObject functor) { this.ctx = ctx; func = functor.ToFunction(ctx) !; ctx.ThrowIf(); }
public CompositionContainer(DyFunction first, DyFunction second) : base(null, first.Parameters, first.VarArgIndex) { this.first = first; this.second = second; }
protected override bool Equals(DyFunction func) => func is CompositionContainer cc &&
protected override bool Equals(DyFunction func) => FunctionName == func.FunctionName && func is DyExternalFunction fn && fn.func.Equals(func) &&
protected override bool Equals(DyFunction func) => func is DyNativeFunction m && m.UnitId == UnitId && m.FunctionId == FunctionId &&