Feature #2084
Method#source_location and Methods Created with `attr`
| Status: | Closed | Start date: | 09/11/2009 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | % Done: | 100% |
||
| Category: | core | |||
| Target version: | 1.9.2 |
Description
$ cat /tmp/attr.rb
class C
attr :a
end
p C.instance_methods(false)
p C.instance_method(:a).source_location
$ ruby -v /tmp/attr.rb
ruby 1.9.2dev (2009-09-11) [i686-linux]
[:a]
nil
Is it feasible to have Method#source_location work with methods created with _attr_(and friends)? Given that a common use for this feature is to extract documentation, it would be helpful if such methods could be located by introspection.
Associated revisions
* proc.c (rb_method_location): return attr's location if it is setup.
[Feature #2084]
* NEWS: follow above.
* vm_method.c (rb_add_method): save attr's location.
* gc.c (mark_method_entry): mark attr's location.
* method.h (rb_method_definition_t): add member to save attr's location.
* vm_eval.c (vm_call0): follow above.
* vm_insnhelper.c (vm_call_method): ditto.
* vm_method.c (rb_method_definition_eq): ditto.
* proc.c (rb_method_location): return attr's location if it is setup.
[Feature #2084]
* NEWS: follow above.
* vm_method.c (rb_add_method): save attr's location.
* gc.c (mark_method_entry): mark attr's location.
* method.h (rb_method_definition_t): add member to save attr's location.
* vm_eval.c (vm_call0): follow above.
* vm_insnhelper.c (vm_call_method): ditto.
* vm_method.c (rb_method_definition_eq): ditto.
History
Updated by _ wanabe about 2 years ago
- File save_attr_loc.patch added
I wrote a patch. How about this?
Updated by Nobuyoshi Nakada almost 2 years ago
- Status changed from Open to Assigned
- Assignee set to Yuki Sonoda
Updated by Yusuke Endoh almost 2 years ago
- Priority changed from Low to Normal
- Target version set to 1.9.2
Hi, > I wrote a patch. How about this? +1, and I confirmed it passes make check and RubySpec. Matz or Yugui, could you approve this? -- Yusuke Endoh <mame@tsg.ne.jp>
Updated by Yusuke Endoh almost 2 years ago
- Assignee changed from Yuki Sonoda to _ wanabe
Hi, > Matz or Yugui, could you approve this? Yugui has agreed with this feature on IRC. But she said she had no responsibility for Method#source_location. (I had misunderstood that she had committed it) Well, because this feature is trivial, I guess anyone won't disagree. Wanabe, could you apply your patch? If you are reluctant to commit it without explicit approval, I'll commit it on my own responsibility. -- Yusuke Endoh <mame@tsg.ne.jp>
Updated by _ wanabe almost 2 years ago
> If you are reluctant to commit it without explicit approval, I'll > commit it on my own responsibility. Many thanks for your concern. I'll apply it soon.
Updated by _ wanabe almost 2 years ago
- Status changed from Assigned to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r27016. Run Paint, thank you for reporting this issue. Your contribution to Ruby is greatly appreciated. May Ruby be with you.