[ruby-core:75969] [Ruby trunk Bug#12295][Assigned] Ripper not emitting on_parse_error for global variable name syntax errors
From:
shyouhei@...
Date:
2016-06-13 07:06:10 UTC
List:
ruby-core #75969
Issue #12295 has been updated by Shyouhei Urabe.
Status changed from Open to Assigned
Assignee set to Minero Aoki
----------------------------------------
Bug #12295: Ripper not emitting on_parse_error for global variable name syntax errors
https://bugs.ruby-lang.org/issues/12295#change-59161
* Author: Loren Segal
* Status: Assigned
* Priority: Normal
* Assignee: Minero Aoki
* ruby -v: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux-gnu]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Ripper is not emitting the `on_parse_error` event for certain types of syntax errors, specifically for the following snippet of code:
```
:~$
```
Here is the Ruby syntax error:
```
$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux-gnu]
$ ruby -e ':~$'
-e:1: `$' without identifiers is not allowed as a global variable name
```
Here is the expected Ripper result for a syntax error emitting `on_parse_error`:
```
$ ruby -rripper -e 'class X < Ripper; def on_parse_error(m) puts "ERROR #{m}" end end; X.parse "class;end"'
ERROR syntax error, unexpected ';'
```
Here is reproduction for the omitted `on_parse_error` event:
```
$ ruby -rripper -e 'class X < Ripper; def on_parse_error(m) puts "ERROR #{m}" end end; X.parse ":~$"'
$
```
Note the lack of ERROR message. The expectation is that this parse error will emit the `on_parse_error` event in Ripper.
I reproduced this in Ruby 2.3.0, I have not tested 2.2 or dev, so I don't know if it needs porting, though I imagine it does.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>