Issue #20399 has been updated by kddnewton (Kevin Newton).
I agree, but I still think Ripper should match the parser's behavior here. Otherwise
you can't get the AST of those kinds of files.
----------------------------------------
Bug #20399: Ripper doesn't respect implicit -x
https://bugs.ruby-lang.org/issues/20399#change-107537
* Author: kddnewton (Kevin Newton)
* Status: Open
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
For the given script:
```ruby
#!/bin/sh
# -*- ruby -*-
exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ]
if false
#!ruby
# This needs ruby 2.0, Subversion and Git.
# As a Ruby committer, run this in an SVN repository
# to commit a change.
require 'tempfile'
require 'net/http'
```
I would expect all of the various Ripper APIs (`lex`, `sexp`, `sexp_raw`, `new.parse`,
etc.) to start parsing on line 4, because that's what the parser does. Instead, it
starts parsing on line 1.
--
https://bugs.ruby-lang.org/