/*!*/ public static DynamicMetaObject TypeError(DynamicMetaObjectBinder/*!*/ action, string message, params DynamicMetaObject[] types) { if (action is ITotemSite) { ITotemSite site = (ITotemSite)action; message = String.Format(message, ArrayUtils.ConvertAll(types, x => { var t = site.Context.GetTypeHandler(x.LimitType); if (t != null) return t.Name; return x.LimitType.Name; })); Expression error = action.Throw( Ast.Call( AstMethods.SimpleTypeError, Ast.Constant(message) ), typeof(object) ); return new DynamicMetaObject( error, BindingRestrictions.Combine(types) ); } return GenericFallback(action, types); }
private static Expression/*!*/ GetCallError(DynamicMetaObjectBinder binder, DynamicMetaObject/*!*/ self) { Assert.NotNull(self); return binder.Throw( Ast.Call( typeof(PythonOps).GetMethod("UncallableError"), AstUtils.Convert(self.Expression, typeof(object)) ) ); }