Issue #9344 has been updated by Ken Takata.

Status changed from Assigned to Closed

Onigmo 5.14.1 was merged with r46831.
Fix for this issue is included in Onigmo 5.14.1.

> 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().

If you send me another pull request, I will merge it.

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

* Author: Thierry Lambert
* Status: Closed
* Priority: Normal
* Assignee: Ken Takata
* Category: regexp
* Target version: current: 2.2.0
* ruby -v: ruby 1.9.3p484 (2013-11-22) [i386-mingw32]
* Backport: 1.9.3: REQUIRED, 2.0.0: REQUIRED, 2.1: REQUIRED
----------------------------------------
File 'test.rb' contains:

~~~ruby
$-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)


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