Code Review: ClrInteropBugFixes

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

Simple DLR changes

Ruby bug fixes:

http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1345:
load_assembly(<partial_name>) should work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1501:
WinForms broken
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1344:
System.Action.new does not work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=917: Passing
a Ruby array to a .NET method that expects an IEnumerable derivative
fails with GetEnumerator call

  • fixes incorrect caching of TypeGroup#new.

Class#clr_member no longer throws an exception if called on Ruby class -
it returns a group of all inherited CLR methods of given name (if there
are any).
Improves display name of generic types: e.g. Action displays as
System::Action[Fixnum].

Tomas

Adding one more bug fix:

http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1470 : Can’t
call the BigIntegerOverload of a method with a DefaultProtocol Attribute
on the BigInteger attribute

  • Bignum.new(1) should call method_missing:

irb(main):001:0> Bignum.new(1)
NoMethodError: undefined method `new’ for Bignum:Class

Tomas

From: Tomas M.
Sent: Monday, June 01, 2009 6:47 PM
To: IronRuby External Code R.; Rowan Code R.
Cc: [email protected]
Subject: Code Review: ClrInteropBugFixes

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

Simple DLR changes

Ruby bug fixes:

http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1345:
load_assembly(<partial_name>) should work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1501:
WinForms broken
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1344:
System.Action.new does not work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=917: Passing
a Ruby array to a .NET method that expects an IEnumerable derivative
fails with GetEnumerator call

  • fixes incorrect caching of TypeGroup#new.

Class#clr_member no longer throws an exception if called on Ruby class -
it returns a group of all inherited CLR methods of given name (if there
are any).
Improves display name of generic types: e.g. Action displays as
System::Action[Fixnum].

Tomas

Looks good!

From: Tomas M.
Sent: Monday, June 01, 2009 7:06 PM
To: Tomas M.; IronRuby External Code R.; Rowan Code
Reviewers
Cc: [email protected]
Subject: RE: Code Review: ClrInteropBugFixes

Adding one more bug fix:

http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1470 : Can’t
call the BigIntegerOverload of a method with a DefaultProtocol Attribute
on the BigInteger attribute

  • Bignum.new(1) should call method_missing:

irb(main):001:0> Bignum.new(1)
NoMethodError: undefined method `new’ for Bignum:Class

Tomas

From: Tomas M.
Sent: Monday, June 01, 2009 6:47 PM
To: IronRuby External Code R.; Rowan Code R.
Cc: [email protected]
Subject: Code Review: ClrInteropBugFixes

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

Simple DLR changes

Ruby bug fixes:

http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1345:
load_assembly(<partial_name>) should work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1501:
WinForms broken
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1344:
System.Action.new does not work
http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=917: Passing
a Ruby array to a .NET method that expects an IEnumerable derivative
fails with GetEnumerator call

  • fixes incorrect caching of TypeGroup#new.

Class#clr_member no longer throws an exception if called on Ruby class -
it returns a group of all inherited CLR methods of given name (if there
are any).
Improves display name of generic types: e.g. Action displays as
System::Action[Fixnum].

Tomas