Exemple #1
0
            public override DynamicMetaObject /*!*/ GetExpression(PythonBinder /*!*/ binder)
            {
                PythonOverloadResolver resolve;

                if (_creating.IsSystemType || _creating.HasSystemCtor)
                {
                    resolve = new PythonOverloadResolver(
                        binder,
                        Arguments.Arguments,
                        Arguments.Signature,
                        CodeContext
                        );
                }
                else
                {
                    resolve = new PythonOverloadResolver(
                        binder,
                        ArrayUtils.Insert(Arguments.Self, Arguments.Arguments),
                        GetDynamicNewSignature(),
                        CodeContext
                        );
                }

                return(binder.CallMethod(
                           resolve,
                           _creating.UnderlyingSystemType.GetConstructors(),
                           Arguments.Self.Restrictions,
                           _creating.Name
                           ));
            }
Exemple #2
0
 public override DynamicMetaObject /*!*/ GetExpression(PythonBinder /*!*/ binder)
 {
     return(binder.CallMethod(
                new PythonOverloadResolver(
                    binder,
                    ArrayUtils.Insert(Arguments.Self, Arguments.Arguments),
                    Arguments.Signature.InsertArgument(new Argument(ArgumentType.Simple)),
                    CodeContext
                    ),
                _ctor.Targets,
                _creating.Name
                ));
 }
Exemple #3
0
            public override DynamicMetaObject /*!*/ GetExpression(PythonBinder /*!*/ binder)
            {
                PythonOverloadResolver resolver;

                if (_creating.IsSystemType || _creating.HasSystemCtor)
                {
                    resolver = new PythonOverloadResolver(binder, DynamicMetaObject.EmptyMetaObjects, new CallSignature(0), CodeContext);
                }
                else
                {
                    resolver = new PythonOverloadResolver(binder, new[] { Arguments.Self }, new CallSignature(1), CodeContext);
                }

                return(binder.CallMethod(resolver, _creating.UnderlyingSystemType.GetConstructors(), BindingRestrictions.Empty, _creating.Name));
            }
Exemple #4
0
            public override DynamicMetaObject /*!*/ MakeInitCall(PythonBinder /*!*/ binder, DynamicMetaObject /*!*/ createExpr)
            {
                if (_method == InstanceOps.Init.Template)
                {
                    // we have a default __init__, don't call it.
                    return(createExpr);
                }

                return(binder.CallMethod(
                           new PythonOverloadResolver(
                               binder,
                               createExpr,
                               Arguments.Arguments,
                               Arguments.Signature,
                               CodeContext
                               ),
                           _method.Targets,
                           Arguments.Self.Restrictions
                           ));
            }
            public override DynamicMetaObject/*!*/ MakeInitCall(PythonBinder/*!*/ binder, DynamicMetaObject/*!*/ createExpr) {
                if (_method == InstanceOps.Init.Template) {
                    // we have a default __init__, don't call it.
                    return createExpr;
                }

                return binder.CallMethod(
                    new PythonOverloadResolver(
                        binder,
                        createExpr,
                        Arguments.Arguments,
                        Arguments.Signature,
                        CodeContext
                    ),
                    _method.Targets,
                    Arguments.Self.Restrictions
                );
            }
 public override DynamicMetaObject/*!*/ GetExpression(PythonBinder/*!*/ binder) {
     return binder.CallMethod(
         new PythonOverloadResolver(
             binder,
             ArrayUtils.Insert(Arguments.Self, Arguments.Arguments),
             Arguments.Signature.InsertArgument(new Argument(ArgumentType.Simple)),
             CodeContext
         ),
         _ctor.Targets,
         _creating.Name
     );
 }
            public override DynamicMetaObject/*!*/ GetExpression(PythonBinder/*!*/ binder) {
                PythonOverloadResolver resolve;

                if (_creating.IsSystemType || _creating.HasSystemCtor) {
                    resolve = new PythonOverloadResolver(
                        binder, 
                        Arguments.Arguments, 
                        Arguments.Signature, 
                        CodeContext
                    );
                } else {
                    resolve = new PythonOverloadResolver(
                        binder, 
                        ArrayUtils.Insert(Arguments.Self, Arguments.Arguments), 
                        GetDynamicNewSignature(), 
                        CodeContext
                    );
                }

                return binder.CallMethod(
                    resolve,
                    _creating.UnderlyingSystemType.GetConstructors(),
                    Arguments.Self.Restrictions,
                    _creating.Name
                );
            }
            public override DynamicMetaObject/*!*/ GetExpression(PythonBinder/*!*/ binder) {
                PythonOverloadResolver resolver;
                if (_creating.IsSystemType || _creating.HasSystemCtor) {
                    resolver = new PythonOverloadResolver(binder, DynamicMetaObject.EmptyMetaObjects, new CallSignature(0), CodeContext);
                } else {
                    resolver = new PythonOverloadResolver(binder, new[] { Arguments.Self }, new CallSignature(1), CodeContext);
                }

                return binder.CallMethod(resolver, _creating.UnderlyingSystemType.GetConstructors(), BindingRestrictions.Empty, _creating.Name);
            }