IronRuby.Runtime.Calls.MetaObjectBuilder.AddRestriction C# (CSharp) Méthode

AddRestriction() public méthode

public AddRestriction ( BindingRestrictions restriction ) : void
restriction System.Dynamic.BindingRestrictions
Résultat void
        public void AddRestriction(BindingRestrictions/*!*/ restriction) {
            if (_treatRestrictionsAsConditions) {
                AddCondition(restriction.ToExpression());
            } else {
                Add(restriction);
            }
        }

Same methods

MetaObjectBuilder::AddRestriction ( Expression restriction ) : void

Usage Example

Exemple #1
0
        internal void AddArgumentRestrictions(MetaObjectBuilder /*!*/ metaBuilder, BindingTarget /*!*/ bindingTarget)
        {
            var args           = GetActualArguments();
            var restrictedArgs = bindingTarget.Success ? bindingTarget.RestrictedArguments.GetObjects() : args.Arguments;

            for (int i = _firstRestrictedArg; i < restrictedArgs.Count; i++)
            {
                var arg = (bindingTarget.Success ? restrictedArgs[i] : restrictedArgs[i].Restrict(restrictedArgs[i].GetLimitType()));

                if (i >= args.FirstSplattedArg && i <= _lastSplattedArg)
                {
                    metaBuilder.AddCondition(arg.Restrictions.ToExpression());
                }
                else
                {
                    metaBuilder.AddRestriction(arg.Restrictions);
                }
            }

            // Adds condition for collapsed arguments - it is the same whether we succeed or not:
            var splatCondition = GetCollapsedArgsCondition();

            if (splatCondition != null)
            {
                metaBuilder.AddCondition(splatCondition);
            }
        }
All Usage Examples Of IronRuby.Runtime.Calls.MetaObjectBuilder::AddRestriction