# Code Review: Accessors

**URL:** <https://www.ruby-forum.com/t/code-review-accessors/138213>\
**Category:** IronRuby\
**Created:** [May 21, 2008, 4:15am UTC](https://www.ruby-forum.com/t/code-review-accessors/138213 "2008-05-21T04:15:24Z")\
**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 21, 2008, 4:15am UTC](https://www.ruby-forum.com/t/code-review-accessors/138213/1 "2008-05-21T04:15:24Z")

</div>

tfpt review /shelveset:Accessors;REDMOND\tomat

Fixes bug #20242: send attr\_accessor.  
Uses rule generators to implement attribute accessors. Previously both  
used RubyMethodGroupInfo that was hacked to make them work. The hack is  
not needed anymore.

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 21, 2008, 7:05am UTC](https://www.ruby-forum.com/t/code-review-accessors/138213/2 "2008-05-21T07:05:43Z")

</div>

I’m wondering why SetInstanceVariable() has the funny signature:

public static object SetInstanceVariable(object self, object value,  
CodeContext/_!_/ context, SymbolId name) {

which is quite unlike other method signatures that we’re used to seeing.

Otherwise, looks good!  
-John

---

<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 21, 2008, 7:25am UTC](https://www.ruby-forum.com/t/code-review-accessors/138213/3 "2008-05-21T07:25:03Z")

</div>

To optimize stack allocation. Maybe even better would be to take value  
first. If the self or value argument is calculated as a result of  
try-catch/try-finally block (something like @x = begin 1; rescue; end,  
we need to save previous parameters to locals and enter the try-block  
with an empty IL stack. The less parameters before the less allocated  
variables on stack.

Tomas
