public static DynamicMetaObject TryBind(RubyContext/*!*/ context, CreateInstanceBinder/*!*/ binder, DynamicMetaObject/*!*/ target, DynamicMetaObject/*!*/[]/*!*/ args) {
            Assert.NotNull(context, binder, target, args);
            
            var metaBuilder = new MetaObjectBuilder();

            RubyCallAction.Bind(metaBuilder, "new", 
                new CallArguments(
                    new DynamicMetaObject(AstUtils.Constant(context), BindingRestrictions.Empty, context),
                    target, 
                    args, 
                    RubyCallSignature.Simple(args.Length)
                )
            );

            // TODO: we should return null if we fail, we need to throw exception due to version update optimization:
            return metaBuilder.CreateMetaObject(binder, DynamicMetaObject.EmptyMetaObjects);
        }
示例#2
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args) => _metaObject.BindCreateInstance(binder, args);
            public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args) {
                if (IsOverridden("TryCreateInstance")) {
                    return CallMethodWithResult("TryCreateInstance", binder, GetArgArray(args), (e) => binder.FallbackCreateInstance(this, args, e));
                }

                return base.BindCreateInstance(binder, args);
            }
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(AddRestrictions(_metaForwardee.BindCreateInstance(binder, args)));
 }
示例#5
0
 public virtual DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args);
示例#6
0
 public static DynamicMetaObject /*!*/ Bind(DynamicMetaObject /*!*/ context, CreateInstanceBinder /*!*/ binder, DynamicMetaObject /*!*/ target,
                                            DynamicMetaObject /*!*/[] /*!*/ args, Func <DynamicMetaObject, DynamicMetaObject[], DynamicMetaObject> /*!*/ fallback)
 {
     return(Bind(context, "new", binder.CallInfo, binder, target, args, fallback));
 }
 /// <summary>
 /// Performs the binding of the dynamic create instance operation.
 /// </summary>
 /// <param name="binder">An instance of the <see cref="CreateInstanceBinder"/> that represents the details of the dynamic operation.</param>
 /// <param name="args">An array of <see cref="DynamicMetaObject"/> instances - arguments to the create instance operation.</param>
 /// <returns>The new <see cref="DynamicMetaObject"/> representing the result of the binding.</returns>
 public virtual DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args) {
     ContractUtils.RequiresNotNull(binder, "binder");
     return binder.FallbackCreateInstance(this, args);
 }
示例#8
0
 DynamicMetaObject \u206A‭‮‍‮‏‏‮‮‮‭‬‫‏‫‬‪‮‪‬‌‭‮‎‪‮([In] CreateInstanceBinder obj0, [In] DynamicMetaObject[] obj1)
 {
     // ISSUE: unable to decompile the method.
 }
示例#9
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(new DynamicMetaObject(Expression.Constant(null),
                                  BindingRestrictions.GetExpressionRestriction(Expression.Constant(true))));
 }
 public override DynamicMetaObject /*!*/ BindCreateInstance(CreateInstanceBinder /*!*/ binder, DynamicMetaObject /*!*/[] /*!*/ args)
 {
     return(InteropBinder.InvokeMember.Bind(CreateMetaContext(), binder, this, args, binder.FallbackCreateInstance));
 }
示例#11
0
 public sealed override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 => VariantValue.BindCreateInstance(binder, args);
示例#12
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(binder.FallbackCreateInstance(_baseMetaObject,
                                          args,
                                          AddTypeRestrictions(_metaObject.BindCreateInstance(binder, args))));
 }
示例#13
0
 protected abstract void WriteCreateInstanceBinder(CreateInstanceBinder createInstanceBinder, IList <Expression> args);
示例#14
0
 protected virtual void WriteCreateInstanceBinder(CreateInstanceBinder createInstanceBinder, IList <Expression> args) => throw new NotImplementedException();
示例#15
0
 public virtual DynamicMetaObject \u206D‭‬​‌‪‭‪‌‏‭‏‏‭‪‪‏‬‬‎‪‏‪‮‎‮‌‮(CreateInstanceBinder _param1, DynamicMetaObject[] _param2)
 {
     // ISSUE: unable to decompile the method.
 }
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(IsOverridden("TryCreateInstance")
         ? CallMethodWithResult("TryCreateInstance", binder, GetArgArray(args), e => binder.FallbackCreateInstance(this, args, e))
         : base.BindCreateInstance(binder, args));
 }
示例#17
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder create, params DynamicMetaObject[] args) {
     return InvokeWorker(create, args, AstUtils.Constant(PythonContext.GetPythonContext(create).SharedContext));
 }
示例#18
0
 /// <summary>
 /// Performs the binding of the dynamic create instance operation.
 /// </summary>
 /// <param name="binder">An instance of the <see cref="CreateInstanceBinder"/> that represents the details of the dynamic operation.</param>
 /// <param name="args">An array of <see cref="DynamicMetaObject"/> instances - arguments to the create instance operation.</param>
 /// <returns>The new <see cref="DynamicMetaObject"/> representing the result of the binding.</returns>
 public virtual DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     ContractUtils.RequiresNotNull(binder, "binder");
     return(binder.FallbackCreateInstance(this, args));
 }
示例#19
0
 public override bool TryCreateInstance(CreateInstanceBinder binder, object[] args, out object result)
 {
     return(base.TryCreateInstance(binder, args, out result));
 }
示例#20
0
 // Token: 0x06000D94 RID: 3476 RVA: 0x0004910C File Offset: 0x0004730C
 public virtual bool tmethod_2432(T arg_0, CreateInstanceBinder arg_1, object[] arg_2, out object arg_3)
 {
     arg_3 = null;
     return(false);
 }
示例#21
0
 public override bool TryCreateInstance(CreateInstanceBinder binder, object[] args, out object result)
 {
     result = null;
     return(false);
 }
示例#22
0
 /// <summary>
 /// Performs the binding of the dynamic create instance operation.
 /// </summary>
 /// <param name="binder">An instance of the System.Dynamic.CreateInstanceBinder that represents the details of the dynamic operation.</param>
 /// <param name="args">An array of System.Dynamic.DynamicMetaObject instances - arguments to the create instance operation.</param>
 /// <returns>The new System.Dynamic.DynamicMetaObject representing the result of the binding.</returns>
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(Underlying.BindCreateInstance(binder, args));
 }
示例#23
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return(PostProcessBindResult(metaDynamic.BindCreateInstance(binder, args)));
 }
示例#24
0
 /// <summary>
 /// Override on DynamicObject
 /// </summary>
 /// <param name="binder"></param>
 /// <param name="args"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 public override bool TryCreateInstance(CreateInstanceBinder binder, object[] args, out object result)
 {
     result = new Mimic();
     return(true);
 }
示例#25
0
 public virtual bool TryCreateInstance(CreateInstanceBinder binder, object[] args, out object result);
示例#26
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     return
         (InteropBinder.InvokeMember.Bind(
              new InteropBinder.InvokeMember("new", binder.CallInfo, Scope), this, args));
 }
 public virtual bool TryCreateInstance(CreateInstanceBinder binder, object[] args, out object result) {
     result = null;
     return false;
 }
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
 {
     throw new NotImplementedException();
 }
示例#29
0
 public virtual bool TryCreateInstance(T instance, CreateInstanceBinder binder, object[] args, out object?result)
 {
     result = null;
     return(false);
 }
示例#30
0
 public override DynamicMetaObject/*!*/ BindCreateInstance(CreateInstanceBinder/*!*/ create, params DynamicMetaObject/*!*/[]/*!*/ args) {
     return MakeCallRule(create, AstUtils.Constant(BinderState.GetBinderState(create).Context), args);
 }
示例#31
0
 public override DynamicMetaObject /*!*/ BindCreateInstance(CreateInstanceBinder /*!*/ create, params DynamicMetaObject /*!*/[] /*!*/ args)
 {
     return(MakeCallRule(create, AstUtils.Constant(PythonContext.GetPythonContext(create).SharedContext), args));
 }
示例#32
0
 public virtual Object CreateInstance(CreateInstanceBinder binder, Object[] args)
 {
     throw Fallback();
 }
示例#33
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder create, params DynamicMetaObject[] args) {
     return InvokeWorker(create, args, AstUtils.Constant(BinderState.GetBinderState(create).Context));
 }
示例#34
0
 public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder create, params DynamicMetaObject[] args)
 {
     return(InvokeWorker(create, args, AstUtils.Constant(PythonContext.GetPythonContext(create).SharedContext)));
 }
示例#35
0
 public override DynamicMetaObject/*!*/ BindCreateInstance(CreateInstanceBinder/*!*/ create, params DynamicMetaObject/*!*/[]/*!*/ args) {
     return MakeCallRule(create, AstUtils.Constant(PythonContext.GetPythonContext(create).SharedContext), args);
 }
示例#36
0
        public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
        {
            Logger.Log(LogLevel.Debug, null, "BindCreateInstance");

            throw new NotImplementedException();
        }