# Code Review: Reflection

**URL:** <https://www.ruby-forum.com/t/code-review-reflection/137087>\
**Category:** IronRuby\
**Created:** [May 8, 2008, 9:02pm UTC](https://www.ruby-forum.com/t/code-review-reflection/137087 "2008-05-08T21:02:11Z")\
**Posts on this page:** 3\
**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:** [May 8, 2008, 9:02pm UTC](https://www.ruby-forum.com/t/code-review-reflection/137087/1 "2008-05-08T21:02:11Z")

</div>

tfpt review /shelveset:Reflection;REDMOND\tomat

Removes singleton classes from Module#ancestors return value to match  
MRI.  
Implements Kernel#extend, Kernel#singleton\_methods, Module#extended and  
Module#extend\_object.

Fixes [#20002] singleton\_methods not implemented.  
Fixes [#19972] Module::module\_function assertion error. The assertion  
was incorrect.  
Fixes [#20011] Can’t subclass module. Added protected constructors to  
allow inheriting in Ruby.

Includes adjusted Wayne K.'s patch.

Tomas

---

<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:** [May 9, 2008, 2:16am UTC](https://www.ruby-forum.com/t/code-review-reflection/137087/2 "2008-05-09T02:16:39Z")

</div>

I think you also need to check for ci.IsFamilyAndAssembly in  
RubyTypeBuilder.MakeClass (when checking for private) but otherwise it  
looks good.

---

<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:** [May 9, 2008, 2:28am UTC](https://www.ruby-forum.com/t/code-review-reflection/137087/3 "2008-05-09T02:28:56Z")

</div>

Thanks, forgot about that one.

Tomas
