Issue #9344 has been updated by Nobuyoshi Nakada.


Rather I think `onig_syntax_warn()` should use `onig_verb_warn` instead of calling `rb_warn()` directly.
And another warning function with source file and line number, instead of `rb_compile_warn()`.

----------------------------------------
Bug #9344: warning origin incorrect with instance_eval
https://bugs.ruby-lang.org/issues/9344#change-45630

* Author: Thierry Lambert
* Status: Open
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
File 'test.rb' contains:
  $-w = 2
  code = <<-RUBY
    x = /]]/
    y = /[a-z]+*/
  RUBY
  instance_eval code, 'foo.rb'

The execution reports:
  foo.rb:1: warning: regular expression has ']' without escape: /]]/
  test.rb:6: warning: nested repeat operator + and * was replaced with '*': /[a-z]+*/

The last line should state 'foo.rb:2' instead of 'test.rb:6'.

The bug is also present in: ruby 2.0.0p353 (2013-11-22) [i386-mingw32]


---Files--------------------------------
9344.patch (3.55 KB)
9344-v2.patch (1.87 KB)


-- 
http://bugs.ruby-lang.org/