[Ironruby-core] Code Review: AstImprovements

Tomas Matousek Tomas.Matousek at microsoft.com
Tue Dec 8 20:21:42 EST 2009


  tfpt review "/shelveset:AstImprovements;REDMOND\tomat"
  Comment  : 
  DLR:
  Adds ExpressionCollectionBuilder (moves the implementation from IronRuby). This allows to construct optimized expressions via C# initializer syntax. Adds a subclass BlockBuilder that can be used to build blocks like so:
  
  Expression result = new BlockBuilder {
      expression1,
      ...
      (condition) ? foo : null,
      anotherExpression
  };
  
  If the expression used in the initializer is null it is skipped.
  If the expression is a sequence of expressions (IEnumerable<Expression>) its content is included in the block.
  BlockBuilder defines an implicit conversion to Expression.
  
  Ruby:
  
  Tree transformation refactorings:
  -	Replaces some AstFactory utility methods with AstUtils equivalents.
  -	Creates Lambda<T> explicitly to avoid calls to MakeGenericType.
  -	Uses BlockBuilder for building complex blocks.

Tomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AstImprovements.diff
Type: application/octet-stream
Size: 84549 bytes
Desc: AstImprovements.diff
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20091209/878c6c53/attachment-0001.obj>


More information about the Ironruby-core mailing list