Code Review: DefaultBinderRefactoring2

tfpt review “/shelveset:DefaultBinderRefactoring2;REDMOND\tomat”

Outer DLR, Python:

Refactors default method call binder:

  • Moves SiteLocalStorage to Python. Ruby uses a different storage class
    and it’s very simple for languages to define and use their own.
  • ActionBinder.BindSpecialParameter shouldn’t deal with CodeContext and
    SiteLocalStorage - moved to PythonBinder.
  • Moved ContextArgBuilder and SiteLocalStorageArgbuilder to Python.
  • ArgBuilder.CanGenerateDelegate needs to be protected so that custom
    ArgBuilders can override it.
  • Renames various identifiers to make naming consistent and more
    meaningful.
  • Simplifies some methods in MethodBinder and MethodCandidate, removes
    dependency on CodeContext - this was only used by JScript (disables a
    couple of JS tests).

Ruby:

  • Replaces calls to obsolete methods of default method binder with
    those using meta-objects.

Tomas