possible bug in Method#source_location (from [ruby-core:27014])
|ruby -v:||ruby 1.9.2dev (2009-11-11 trunk 25717) [i386-mingw32]||Backport:|
Originally reported by Roger Pack:
It appears that Method#source_location returns different values for
1.9.1 and 1.9.2dev for this code:
def go( a=3,
1.9.1 says line 3, 1.9.2 says line 4.
I assume 1.9.1 is correct? (I would expect it to be the line it
starts on, and if you take out the default values, both 1.9.1 and
1.9.2 says line 3).
According to Luis Lavena's report,
a.rb, ending either with LF or CRLF:
C:\Users\Luis\Desktop>pik tags yarv ruby a.rb
ruby 1.9.1p243 (2009-07-16 revision 24175) [i386-mingw32]
ruby 1.9.2dev (2009-11-11 trunk 25717) [i386-mingw32]
But I couldn't reproduce the issue on Mac OS X. Both LF and CRLF scripts said the same results.
In my environment, both versions of ruby said same results.
$ ruby191 -v a.rb
ruby 1.9.1p281 (2009-08-09 revision 24476) [i386-darwin9.7.0]
$ ruby192 -v a.rb
ruby 1.9.2dev (2009-12-04 trunk 25986) [i386-darwin9.8.0]
- parse.y (k_def): adjust the location of method definition to the line of def. [Bug #2427]
#1 Updated by Usaku NAKAMURA almost 6 years ago
- Assignee changed from Usaku NAKAMURA to Nobuyoshi Nakada
I don't know whether 3 or 4 is correct.
Anyway, this difference is brought by the changes of parse.y,
and not depends on the platform of ruby.
It depends on only revision.
I don't track the changes of parse.y, so I don't know the actual
revision which brings this difference.
In my expectation, Nobu knows everything about it.