public Tret UpdateBindingAndInvoke(T0 arg0) { StandardRule <FastDynamicSiteTarget <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, arg0)); } return((Tret)Context.LanguageContext.Binder.UpdateSiteAndExecute <FastDynamicSiteTarget <T0, Tret> >(Context, Action, new object[] { arg0 }, this, ref _target, ref _rules)); }
internal FastDynamicSite(CodeContext context, DynamicAction action) : base(context, action) { this._rules = RuleSet <FastDynamicSiteTarget <T0, Tret> > .EmptyRules; this._target = this._rules.GetOrMakeTarget(null); }