Jruby行编号问题?

Jruby行编号问题?,ruby,jruby,Ruby,Jruby,给出以下代码段: hash = { # 1 (line = __LINE__) => # 2 lambda { x } # 3 } 对jruby进行一些检查: puts line # >> 2 puts hash[line].inspect >> #<Proc:0x560932fe@/tmp/test.rb:2> 似乎与标准mri不同: puts line # >> 2

给出以下代码段:

hash = {                  # 1
  (line = __LINE__) =>    # 2
    lambda { x }          # 3
}
对jruby进行一些检查:

puts line # >> 2
puts hash[line].inspect >> #<Proc:0x560932fe@/tmp/test.rb:2>
似乎与标准mri不同:

puts line # >> 2
puts hash[line].inspect >> #<Proc:0x00007fa59733d760@/tmp/test.rb:3>

在mri中,proc似乎位于第3行,而在jruby中,它位于第2行。。。这是虫子吗?对此有什么解决方法吗?

如果它与MRI不同,可能会被认为是一个bug,很可能是一个bug。JRuby确实有一些这样或那样的框架,它们的对齐方式并不完全相同。大多数情况下,它们都很小,不会引起注意。如果可以的话,请帮助提出一些错误的测试用例,其中应该有一些是错误的,也可以使用块分派尝试一些,并将它们发布到。@jtbandes:它困扰我的原因是我正在使用ruby_解析器实现serializable_proc,ruby_解析器进行静态代码分析,我需要Procinspect生成的行号来确定我要处理哪一行,因为jruby给了我不准确的行号,SerializableProc无法按预期工作。无论如何,SerializableProc可能没有实际用途,但我想这将是我的一个有趣的项目,看看我能把一个过程序列化到什么程度。@nick:是的,刚刚报告了这个bug@和说明差异的规范文件。