Code Review: MOX4

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

Next step towards meta-objects in Ruby.


  • Removes dependency on RuleBuilder from all rule generators in 

Ruby. The generators use a MetaObjectBuilder that stores restriction
expression, condition expression, result expression and temp variables
defined in the expressions. MetaObjectBuilder can produce both
RuleBuilder’s Test and Target, and MetaObject’s Expression and
Restrictions. Currently it is called only to produce rules, but as soon
as we have MetaObjects for all Ruby dynamic objects we can start
producing MetaObjects w/o changes to the rule generators.

DLR (Microsoft.Scripting):

  • Removes ArgumentKind.Block - it's not needed anymore.
  • Adds RuleBuilder.AddTemporary(). Allows to add variables on the 

rule after the tree is generated. This is especially useful for
variables that are defined in test expression and used in target
expression. Without this method it’s not possible to generate a tree
with such variables first and then create the rule.

  • Removes a dependency on RuleBilder from 

BindingTarget.MakeExpression. Only CodeContext expression is needed