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

AddCondition() public méthode

public AddCondition ( Expression condition ) : void
condition Expression
Résultat void
        public void AddCondition(Expression/*!*/ condition) {
            Assert.NotNull(condition);
            _condition = (_condition != null) ? Ast.AndAlso(_condition, condition) : condition;
        }

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::AddCondition