# Code Review: Bug Regressions and .NET interop

**URL:** <https://www.ruby-forum.com/t/code-review-bug-regressions-and-net-interop/164665>\
**Category:** IronRuby\
**Created:** [April 3, 2009, 7:43pm UTC](https://www.ruby-forum.com/t/code-review-bug-regressions-and-net-interop/164665 "2009-04-03T19:43:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [April 3, 2009, 7:43pm UTC](https://www.ruby-forum.com/t/code-review-bug-regressions-and-net-interop/164665/1 "2009-04-03T19:43:48Z")

</div>

Some more changes. Mostly closing bugs and adding .NET interop tests.  
Commit range is 90392fff to a39daeae on  
git://github.com/jredville/ironruby.git. I rebased this time, so you  
should be able to just grab that range and see only my diffs.

- 

```
    closing Rubyforge 

```

15060[http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f](http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f)

- 

```
    [#24589] $PROGRAM_NAME in 'English' not working now 

```

fixed[http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767](http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767)

- 

```
    making $0 the same object as $PROGRAM_NAME and adding specs 

```

for it. Closes [#24589] $PROGRAM\_NAME in ‘English’ not  
working[http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284](http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284)

- 

```
    closing Rubyforge [#15061] tracking: create generic interface 

```

type[http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139](http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139)

- 

```
    closing RubyForge [#15651] NoMethodError expected when calling 

```

the private method ‘initialize’ of a ruby  
class[http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a](http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a)

- 

```
    added protected method invocation specs. Closes Rubyforge 

```

[#19118] Protected members not available when inheriting from CLR  
type[http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374](http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374)

- 

```
    adding regression test for [#19872] IComparableOps.CompareTo 

```

throws argument error when type is  
Decimal[http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21](http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21)

- 

```
    added reference support to 

```

csc.bat[http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99](http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99)

- 

```
    closing [#17467] Accessing IronRuby method from 

```

C#[http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc](http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc)

- 

```
    closing [#19950] Dir.glob doesn't handle 

```

\*\*[http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643](http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643)

- 

```
    closing [#20027] Formatting float to string produces 

```

incorrectly  
&amp;amp;quot;Infinity&amp;amp;quot;[http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21](http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21)

- 

```
    closing [#20043] creating a generic type when the type is an 

```

interface[http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657](http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657)

- 

```
    closing [#20052] Calculating 3.0/2.0 produces 

```

NaN[http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52](http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52)

- 

```
    closing Rubyforge [#20263] Dir.glob doesn't handle missing 

```

folders[http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18](http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18)

- 

```
    closing [#20410] 

```

GetKCodeName[http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629](http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629)

- 

```
    adding test to ensure that File.stat returns a File::Stat 

```

object[http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c](http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c)

- 

```
    closing Rubyforge [#20640] Calling File.open with an integer 

```

(File descriptor overload) causes the File.open site to be  
unusable[http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf](http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf)

- 

```
    closing Rubyforge [#20664] Respecting visibility of methods. 

```

Also fixes a compilation error due to multiple IInterface  
definitions[http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687](http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687)

- 

```
    Closing RubyForge [#20665] Can't use an indexer on a WPF 

```

ResourceDictionary[http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec](http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec)

- 

```
    removing a tag for 

```

predefined[http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c](http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c)

- 

```
    closing Rubyforge [#21943] NullRef exception thrown while 

```

comparing a list containing elements with overriden  
==[http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775](http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775)

- 

```
    closing Rubyforge [#21995] kind_of? not working with when 

```

extend is  
used[http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c](http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c)

- 

```
    recommiting some changes that were reverted by the merge. 

```

Methinks someone in TFS changed them. This makes describe work with 2  
strings for shared behaviors, and it makes csc output #line  
pragmas[http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276](http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276)

- 

```
    fixing some more errors from the 

```

merge[http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c](http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c)

- 

```
    Adding class instantiation specs for regular classes with 

```

overloaded  
constructors[http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594](http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594)

- 

```
    adding regression tests for [#22197] calling super throw 

```

Argument  
Error[http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c](http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c)

- 

```
    adding StringBuilder specs to get rid of test_basic.rb. Also 

```

added equal\_clr\_string  
matcher[http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76](http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76)

- 

```
    refactor specs to use the equal_clr_string 

```

matcher[http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be](http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be)

- 

```
    basic string specs to remove 

```

test\_basic.rb[http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6](http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6)

- 

```
    added more string specs to get rid of test_basic. Also adds 

```

field  
specs[http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d](http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d)

- 

```
    adding some basic event add and remove 

```

specs[http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0](http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0)

- 

```
    added event invocation 

```

specs[http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4](http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4)

JD

---

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [April 3, 2009, 11:12pm UTC](https://www.ruby-forum.com/t/code-review-bug-regressions-and-net-interop/164665/2 "2009-04-03T23:12:55Z")

</div>

Posted comments on github, but here they are also:

- 

```
     'represents the program name' looks strange, asserting that 

```

the splitted string (?) equals a array with two elements, both  
containing the expanded path the string represented. How does that make  
sense? Jim explained this one, and now it makes sense. He’s adding a  
comment to explain the witchery

- 

```
    Catching NoMethodError to check for a private method is not 

```

enough, you should also ensure that klass.method(:initialize) gives you  
back a Method object, and that  
klass.private\_methods.include?(‘initialize’). Given those three pieces  
of info you can better infer that the method exists and it is private.

- 

```
    Make protected_spec less redundant (see comment on 

```

[http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374#comment\_18110](http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374#comment_18110))

- 

```
    Indent is off on line 10 in Interop/fixtures.generated.cs (and 

```

seems to be for all generated C#).

- 

```
    What's the debug("reference", ref) call doing in csc.rb? (that 

```

name cracks me up)

- 

```
    To answer the TODO in conversion_spec.rb: it should belong in 

```

the tests for using IronRuby through the hosting API. I don’t think we  
have any, and maybe they should exist in our .NET interop?  
Interop/dlr/…

- 

```
    Is "truncate" the correct terminology in modulo_spec.rb? How 

```

about “rounds”?

- 

```
    There's no spec for the obj.my_event { ... } syntax

```

Otherwise, good job =)

From: Jim D.  
Sent: Friday, April 03, 2009 9:45 AM  
To: removed\_email\_address@domain.invalid; IronRuby External Code R.  
Subject: Code Review: Bug Regressions and .NET interop

Some more changes. Mostly closing bugs and adding .NET interop tests.  
Commit range is 90392fff to a39daeae on  
git://github.com/jredville/ironruby.git. I rebased this time, so you  
should be able to just grab that range and see only my diffs.

- 

```
    closing Rubyforge 

```

15060[http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f](http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f)

- 

```
    [#24589] $PROGRAM_NAME in 'English' not working now 

```

fixed[http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767](http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767)

- 

```
    making $0 the same object as $PROGRAM_NAME and adding specs 

```

for it. Closes [#24589] $PROGRAM\_NAME in ‘English’ not  
working[http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284](http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284)

- 

```
    closing Rubyforge [#15061] tracking: create generic interface 

```

type[http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139](http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139)

- 

```
    closing RubyForge [#15651] NoMethodError expected when calling 

```

the private method ‘initialize’ of a ruby  
class[http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a](http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a)

- 

```
    added protected method invocation specs. Closes Rubyforge 

```

[#19118] Protected members not available when inheriting from CLR  
type[http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374](http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374)

- 

```
    adding regression test for [#19872] IComparableOps.CompareTo 

```

throws argument error when type is  
Decimal[http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21](http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21)

- 

```
    added reference support to 

```

csc.bat[http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99](http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99)

- 

```
    closing [#17467] Accessing IronRuby method from 

```

C#[http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc](http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc)

- 

```
    closing [#19950] Dir.glob doesn't handle 

```

\*\*[http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643](http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643)

- 

```
    closing [#20027] Formatting float to string produces 

```

incorrectly  
&amp;amp;quot;Infinity&amp;amp;quot;[http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21](http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21)

- 

```
    closing [#20043] creating a generic type when the type is an 

```

interface[http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657](http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657)

- 

```
    closing [#20052] Calculating 3.0/2.0 produces 

```

NaN[http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52](http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52)

- 

```
    closing Rubyforge [#20263] Dir.glob doesn't handle missing 

```

folders[http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18](http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18)

- 

```
    closing [#20410] 

```

GetKCodeName[http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629](http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629)

- 

```
    adding test to ensure that File.stat returns a File::Stat 

```

object[http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c](http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c)

- 

```
    closing Rubyforge [#20640] Calling File.open with an integer 

```

(File descriptor overload) causes the File.open site to be  
unusable[http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf](http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf)

- 

```
    closing Rubyforge [#20664] Respecting visibility of methods. 

```

Also fixes a compilation error due to multiple IInterface  
definitions[http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687](http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687)

- 

```
    Closing RubyForge [#20665] Can't use an indexer on a WPF 

```

ResourceDictionary[http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec](http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec)

- 

```
    removing a tag for 

```

predefined[http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c](http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c)

- 

```
    closing Rubyforge [#21943] NullRef exception thrown while 

```

comparing a list containing elements with overriden  
==[http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775](http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775)

- 

```
    closing Rubyforge [#21995] kind_of? not working with when 

```

extend is  
used[http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c](http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c)

- 

```
    recommiting some changes that were reverted by the merge. 

```

Methinks someone in TFS changed them. This makes describe work with 2  
strings for shared behaviors, and it makes csc output #line  
pragmas[http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276](http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276)

- 

```
    fixing some more errors from the 

```

merge[http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c](http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c)

- 

```
    Adding class instantiation specs for regular classes with 

```

overloaded  
constructors[http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594](http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594)

- 

```
    adding regression tests for [#22197] calling super throw 

```

Argument  
Error[http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c](http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c)

- 

```
    adding StringBuilder specs to get rid of test_basic.rb. Also 

```

added equal\_clr\_string  
matcher[http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76](http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76)

- 

```
    refactor specs to use the equal_clr_string 

```

matcher[http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be](http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be)

- 

```
    basic string specs to remove 

```

test\_basic.rb[http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6](http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6)

- 

```
    added more string specs to get rid of test_basic. Also adds 

```

field  
specs[http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d](http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d)

- 

```
    adding some basic event add and remove 

```

specs[http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0](http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0)

- 

```
    added event invocation 

```

specs[http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4](http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4)

JD

---

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [April 3, 2009, 11:18pm UTC](https://www.ruby-forum.com/t/code-review-bug-regressions-and-net-interop/164665/3 "2009-04-03T23:18:11Z")

</div>

From: Jimmy S.  
Sent: Friday, April 03, 2009 1:47 PM  
To: Jim D.; removed\_email\_address@domain.invalid; IronRuby External Code  
Reviewers  
Subject: RE: Code Review: Bug Regressions and .NET interop

Posted comments on github, but here they are also:

- 

```
     'represents the program name' looks strange, asserting that 

```

the splitted string (?) equals a array with two elements, both  
containing the expanded path the string represented. How does that make  
sense? Jim explained this one, and now it makes sense. He’s adding a  
comment to explain the witchery

Comment added

- 

```
    Catching NoMethodError to check for a private method is not 

```

enough, you should also ensure that klass.method(:initialize) gives you  
back a Method object, and that  
klass.private\_methods.include?(‘initialize’). Given those three pieces  
of info you can better infer that the method exists and it is private.

Fixed

- 

```
    Make protected_spec less redundant (see comment on 

```

[http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374#comment\_18110](http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374#comment_18110))

I’m going to punt this one, because I want to extract either a shared  
behavior or a matcher out of these specs. I’ll have that in the next  
push.

- 

```
    Indent is off on line 10 in Interop/fixtures.generated.cs (and 

```

seems to be for all generated C#).

Yeah, the generated indentation isn’t perfect. I’ll look into it.

- 

```
    What's the debug("reference", ref) call doing in csc.rb? (that 

```

name cracks me up)

Glad you like the name. debug(str, obj) is a debug method that prints  
“#{str}: #{obj.to\_s}” to stdout if $DEBUG is true

- 

```
    To answer the TODO in conversion_spec.rb: it should belong in 

```

the tests for using IronRuby through the hosting API. I don’t think we  
have any, and maybe they should exist in our .NET interop?  
Interop/dlr/…

I’ll think about this and make the move if needed.

- 

```
    Is "truncate" the correct terminology in modulo_spec.rb? How 

```

about “rounds”?

Fixed

- 

```
    There's no spec for the obj.my_event { ... } syntax

```

Fixed

Otherwise, good job =)

From: Jim D.  
Sent: Friday, April 03, 2009 9:45 AM  
To: removed\_email\_address@domain.invalid; IronRuby External Code R.  
Subject: Code Review: Bug Regressions and .NET interop

Some more changes. Mostly closing bugs and adding .NET interop tests.  
Commit range is 90392fff to a39daeae on  
git://github.com/jredville/ironruby.git. I rebased this time, so you  
should be able to just grab that range and see only my diffs.

- 

```
    closing Rubyforge 

```

15060[http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f](http://github.com/jredville/ironruby/commit/90392fff68b62c20b518507ee4e5766a2067290f)

- 

```
    [#24589] $PROGRAM_NAME in 'English' not working now 

```

fixed[http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767](http://github.com/jredville/ironruby/commit/ab8a90b2f62c8bd347a7db6a142aba13d6997767)

- 

```
    making $0 the same object as $PROGRAM_NAME and adding specs 

```

for it. Closes [#24589] $PROGRAM\_NAME in ‘English’ not  
working[http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284](http://github.com/jredville/ironruby/commit/0619c3b38856614dfefeea1d19f539fd0e440284)

- 

```
    closing Rubyforge [#15061] tracking: create generic interface 

```

type[http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139](http://github.com/jredville/ironruby/commit/b1cae6307a3a151195442c4224e1c6cc6372c139)

- 

```
    closing RubyForge [#15651] NoMethodError expected when calling 

```

the private method ‘initialize’ of a ruby  
class[http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a](http://github.com/jredville/ironruby/commit/35745f6f947da80d2b1669de00f8703d118bd05a)

- 

```
    added protected method invocation specs. Closes Rubyforge 

```

[#19118] Protected members not available when inheriting from CLR  
type[http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374](http://github.com/jredville/ironruby/commit/167197cb78cb81590be9ae2fe48a953306070374)

- 

```
    adding regression test for [#19872] IComparableOps.CompareTo 

```

throws argument error when type is  
Decimal[http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21](http://github.com/jredville/ironruby/commit/d5e75cf6e129b8f415c9e90dd33ea8f1eaf9df21)

- 

```
    added reference support to 

```

csc.bat[http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99](http://github.com/jredville/ironruby/commit/15cc5fe83bd36b2557a4fc487e447c3681434a99)

- 

```
    closing [#17467] Accessing IronRuby method from 

```

C#[http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc](http://github.com/jredville/ironruby/commit/6c31b0834dcccb188a331910cc925054a2a97bfc)

- 

```
    closing [#19950] Dir.glob doesn't handle 

```

\*\*[http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643](http://github.com/jredville/ironruby/commit/125638724c04f4743d7807746424d6d04855c643)

- 

```
    closing [#20027] Formatting float to string produces 

```

incorrectly  
&amp;amp;quot;Infinity&amp;amp;quot;[http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21](http://github.com/jredville/ironruby/commit/d428c0bcb6b09e1d467cb457a2d540fb9dd4ff21)

- 

```
    closing [#20043] creating a generic type when the type is an 

```

interface[http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657](http://github.com/jredville/ironruby/commit/bf83e3af66c5e97ad15c35571e8299a1ff333657)

- 

```
    closing [#20052] Calculating 3.0/2.0 produces 

```

NaN[http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52](http://github.com/jredville/ironruby/commit/40d5b7aaf2915b4a19bf5219cd777a66a6569a52)

- 

```
    closing Rubyforge [#20263] Dir.glob doesn't handle missing 

```

folders[http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18](http://github.com/jredville/ironruby/commit/085a6e79e67eda0c04de3473078b4744e208fc18)

- 

```
    closing [#20410] 

```

GetKCodeName[http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629](http://github.com/jredville/ironruby/commit/d52203496f833b8659909fac023af4ca5ab38629)

- 

```
    adding test to ensure that File.stat returns a File::Stat 

```

object[http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c](http://github.com/jredville/ironruby/commit/de0e2a717206eb71ee628fa9941fb64c77565a8c)

- 

```
    closing Rubyforge [#20640] Calling File.open with an integer 

```

(File descriptor overload) causes the File.open site to be  
unusable[http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf](http://github.com/jredville/ironruby/commit/a0937f07557f26cc44708bfd21f374a4eea07dcf)

- 

```
    closing Rubyforge [#20664] Respecting visibility of methods. 

```

Also fixes a compilation error due to multiple IInterface  
definitions[http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687](http://github.com/jredville/ironruby/commit/d38765a5d2360dbb4bd5cfc3ba71e8221fab4687)

- 

```
    Closing RubyForge [#20665] Can't use an indexer on a WPF 

```

ResourceDictionary[http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec](http://github.com/jredville/ironruby/commit/c9830e5b0a3616718d4654bfb424aef160ed29ec)

- 

```
    removing a tag for 

```

predefined[http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c](http://github.com/jredville/ironruby/commit/388c1fa61db2fbe32fd375e6c5a396a40628239c)

- 

```
    closing Rubyforge [#21943] NullRef exception thrown while 

```

comparing a list containing elements with overriden  
==[http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775](http://github.com/jredville/ironruby/commit/585ab45ddc6fc0beab45fa5c594ba9982aa3a775)

- 

```
    closing Rubyforge [#21995] kind_of? not working with when 

```

extend is  
used[http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c](http://github.com/jredville/ironruby/commit/c288dbb7cecefc524d1f24557b57aa54c601d93c)

- 

```
    recommiting some changes that were reverted by the merge. 

```

Methinks someone in TFS changed them. This makes describe work with 2  
strings for shared behaviors, and it makes csc output #line  
pragmas[http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276](http://github.com/jredville/ironruby/commit/ac44e0d6d4ae8dbdfd9b92b2125f69e2b53d1276)

- 

```
    fixing some more errors from the 

```

merge[http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c](http://github.com/jredville/ironruby/commit/c42e84c21020b6e206f8c84899227eb6e3d2bd7c)

- 

```
    Adding class instantiation specs for regular classes with 

```

overloaded  
constructors[http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594](http://github.com/jredville/ironruby/commit/eba230a507e88ed6a9833671ce037cdd1ad1a594)

- 

```
    adding regression tests for [#22197] calling super throw 

```

Argument  
Error[http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c](http://github.com/jredville/ironruby/commit/9313a99120a518375022ccb4f8a99c5f479f118c)

- 

```
    adding StringBuilder specs to get rid of test_basic.rb. Also 

```

added equal\_clr\_string  
matcher[http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76](http://github.com/jredville/ironruby/commit/09d04d656ad9b2621808c23261f228db69660a76)

- 

```
    refactor specs to use the equal_clr_string 

```

matcher[http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be](http://github.com/jredville/ironruby/commit/410fabd0582a9e1573118f7d15a057cf10bd44be)

- 

```
    basic string specs to remove 

```

test\_basic.rb[http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6](http://github.com/jredville/ironruby/commit/044752ab3fc23e41798f84ac45a41f469ed7a4e6)

- 

```
    added more string specs to get rid of test_basic. Also adds 

```

field  
specs[http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d](http://github.com/jredville/ironruby/commit/de239fa9dceb12a4a9bbb0d200ca699fedd8000d)

- 

```
    adding some basic event add and remove 

```

specs[http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0](http://github.com/jredville/ironruby/commit/bf37c14fe44d1a1ad3567399905c4551da3838b0)

- 

```
    added event invocation 

```

specs[http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4](http://github.com/jredville/ironruby/commit/a39daeae41da467c03f2c38d0e6b68635fc3adc4)

JD
