
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/