public Tret UpdateBindingAndInvoke(CodeContext context, T0 arg0) { StandardRule <BigDynamicSiteTarget <T0, Tret> > rule = _rules.GetRule(context, arg0); if (rule != null) { // site is truly polymorphic, build the polymorphic method _target = _rules.GetOrMakeTarget(context); return(_target(this, context, arg0)); } return((Tret)context.LanguageContext.Binder.UpdateSiteAndExecute <BigDynamicSiteTarget <T0, Tret> >(context, Action, Tuple.GetTupleValues(arg0), this, ref _target, ref _rules)); }
internal BigDynamicSite(DynamicAction action) : base(action) { this._rules = RuleSet <BigDynamicSiteTarget <T0, Tret> > .EmptyRules; this._target = this._rules.GetOrMakeTarget(null); }