# Code Review: BugFixesZ3

**URL:** <https://www.ruby-forum.com/t/code-review-bugfixesz3/179630>\
**Category:** IronRuby\
**Created:** [November 30, 2009, 9:41pm UTC](https://www.ruby-forum.com/t/code-review-bugfixesz3/179630 "2009-11-30T21:41:19Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![grujildo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/94ad74/32.png) [@grujildo](https://www.ruby-forum.com/u/grujildo)\
**Post date:** [November 30, 2009, 9:41pm UTC](https://www.ruby-forum.com/t/code-review-bugfixesz3/179630/1 "2009-11-30T21:41:19Z")

</div>

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

DLR:  
Fixes [http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3183:](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3183:)  
OutAttribute on parameters whose type is not ByRef should be ignored.  
The attribute is only used by native marshaller.

Removes dead and duplicate code (various reflection related helpers) and  
moves them to ReflectionUtils or TypeUtils.

Fixes [http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=957](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=957).  
Removes non-null restriction on the instance parameter of an extension  
method - C# allows to call the extension method on null value:  
public static class Ext {  
public static bool IsNull(this object value) {  
return value == null;  
}  
}

```
  public static void F(object o) {
    Console.WriteLine(o.IsNull());
  }

  public static void Main() {
    F(null);
  }

```

We also didn’t recognize extension methods correctly if they are  
compiled by desktop C# 3.0 (our IsExtension method only detected those  
that are compiled by us and thus use ExtensionAttribute in  
ExtensionAttribute.dll). This causes binding to extension methods to  
behave differently on desktop CLR from Silverlight. The fix is to use  
ExtensionAttribute from System.Core v3.5 assembly if it is available at  
runtime.

Ruby:  
Fixes  
[http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2827:](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2827:) adds  
ToString, GetHashCode, GetType methods on NilClass.  
[http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2914](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2914)  
[http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2913](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2913)  
[http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3068](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=3068)  
[http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2962](http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=2962)

Tomas
