Patent Document ID: 8245210
Application ID: 12470746

Base Claim:
1. A method of transforming selected compile-time context data into a semantics payload for operation binding at run-time, the method comprising the steps of: placing in a semantics payload at compile-time at least one of the following payload portions: a compound-operation-event-add payload portion for a program construct of the form d.P+=h, where d.P is a dynamically typed expression, said payload portion containing an invocation to a run-time-evaluated method to check whether d.P evaluates to an event, an invocation to a mechanism to add an event in case d.P evaluates to an event, and information to perform a compound add assignment operation in case d.P does not evaluate to an event; a compound-operation-event-remove payload portion for a program construct of the form d.P −=h, where d.P is a dynamically typed expression, said payload portion containing an invocation to a run-time-evaluated method to check whether d.P evaluates to an event, an invocation to a mechanism to remove an event in case d.P evaluates to an event, and information to perform a compound remove assignment operation in case d.P does not evaluate to an event; a compound-operation-delegate-combine payload portion for a program construct of the form d.P+=h, where d.P is a dynamically typed expression, said payload portion containing an invocation to a run-time-evaluated method to check whether d.P evaluates to a delegate, an invocation to a mechanism to combine a delegate in case d.P evaluates to a delegate, and information to perform a compound add assignment operation in case d.P does not evaluate to a delegate; a compound-operation-delegate-remove payload portion for a program construct of the form d.P −=h, where d.P is a dynamically typed expression, said payload portion containing an invocation to a run-time-evaluated method to check whether d.P evaluates to a delegate, an invocation to a mechanism to remove a delegate in case d.P evaluates to a delegate, and information to perform a compound remove assignment operation in case d.P does not evaluate to a delegate; a member-accessibility payload portion indicating where an access originated, thereby allowing a runtime to determine whether an invocation location has access to a specified member; a dynamic-typed-object payload portion containing an indication that an object is statically defined to have a dynamic type to be determined at run-time; a struct-by-ref payload portion for a program construct of the form s.M(d) where s is a struct type, d is a dynamically typed variable, and M is a method on s, said payload portion containing an express indication that struct s is to be passed by reference address; an argument-by-name payload portion containing a source code name of a method argument which is specified by name rather than by position in a method invocation in source code; an extension-method-scope payload portion containing at least one of: an express indication that an extension method to be dynamically bound is in scope at compile time, a set of extension methods in scope of a dynamically bound method call which includes all extension methods that the call could possibly bind to; and providing the semantics payload to a run-time binder which performs overload resolution by either binding overloaded program items to particular respective implementations after compile-time or by raising a run-time exception or other error condition if no type-compatible resolution is possible with the information available to the binder.

---

Claim 4:
4. The method of claim 1 , further comprising providing to a run-time binder a dynamic-indexed-property payload portion containing at least one indexer argument and also containing a name of a property that is being indexed.