[Ironruby-core] Code Review: miscrubyfixes

Tomas Matousek Tomas.Matousek at microsoft.com
Fri Oct 24 14:16:57 EDT 2008

tfpt review "/shelveset:miscrubyfixes;REDMOND\tomat"
Comment  :
  Implements range conditions:
  -     If a range whose bounds are not integer literals is used as a control flow condition (if/unless/while-loop/until-loop/?:) it is considered a 'range condition'. It returns true/false depending on whether the execution state is in the range or not (the state is maintained in a local variable).
  -     Adjusts ParseTree to return flip2, flip3 nodes for range conditions.
  -     Removes compile time checks of range bounds - they should be evaluated at runtime.

  Implements regex conditions: A regex in a condition should perform match against $_.
  Converts a call to =~ method to MatchExpression if the left hand side is a regex expression (MRI doesn't call =~ method in that case).

  Stops using dynamic sites for Proc#call, we can easily use block dispatchers.

  Fixes bugs:
  -     def f; yield; end;   f {|a,b,*c| p [a,b,c] }
  -     proc{|x,| x}.call([1]).should == [1] ... This is actually inconsistent with yield in MRI. We had it consistent :-/.
  -     [ ironruby-Bugs-21258 ] Can't splat to unwrap an array of exceptions.
  -     Symbol#inspect should quote only symbols that are not valid variable/method/operator names.
  -                 Fixes 'defined?' for qualified constants and methods.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: miscrubyfixes.diff
Type: application/octet-stream
Size: 685667 bytes
Desc: miscrubyfixes.diff
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20081024/44972f17/attachment-0001.obj>

More information about the Ironruby-core mailing list