Skip to content

Regression in 9.4 IRB parser #7487

@byteit101

Description

@byteit101

Environment Information

jruby 9.4.0.0 (3.1.0) 2022-11-23 95c0ec159f Java HotSpot(TM) 64-Bit Server VM 25.201-b09 on 1.8.0_201-b09 +jit [x86_64-linux]

via RVM

Steps to reproduce

  1. launch IRB
  2. paste str.each_char.each_slice(2){|a, b| (a.ord ^ b.ord)}
  3. edit the line, and try to replace ^ with +
  4. IRB exits with the failure below

Failure trace

ArgumentError: wrong number of arguments (given 0, expected 1)
                     _dispatch_1 at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/core.rb:40
                           parse at org/jruby/ext/ripper/RubyRipper.java:351
                           parse at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/lexer.rb:176
                            scan at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/lexer.rb:159
      ripper_lex_without_warning at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:156
  compile_with_errors_suppressed at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:45
      ripper_lex_without_warning at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:151
                 set_auto_indent at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:211
             process_auto_indent at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline/line_editor.rb:1711
                       input_key at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline/line_editor.rb:1653
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:329
                            each at org/jruby/RubyArray.java:1988
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:328
                         read_io at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:403
                            loop at org/jruby/RubyKernel.java:1586
                         read_io at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:373
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:326
                            loop at org/jruby/RubyKernel.java:1586
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:324
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:254
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/forwardable.rb:238
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/forwardable.rb:238
                            gets at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/input-method.rb:418
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:539
                   signal_status at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:770
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:538
                             lex at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:284
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:253
                            loop at org/jruby/RubyKernel.java:1586
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:250
                           catch at org/jruby/RubyKernel.java:1292
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:249
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:557
                             run at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:491
                           catch at org/jruby/RubyKernel.java:1292
                             run at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:490
                           start at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:419
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/gems/shared/gems/irb-1.4.1/exe/irb:11
                            load at org/jruby/RubyKernel.java:1091
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/bin/irb:23
                            eval at org/jruby/RubyKernel.java:1143
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/bin/jruby_executable_hooks:22
... 43 levels...
ArgumentError: wrong number of arguments (given 0, expected 1)
                     _dispatch_1 at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/core.rb:40
                           parse at org/jruby/ext/ripper/RubyRipper.java:351
                           parse at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/lexer.rb:176
                            scan at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/ripper/lexer.rb:159
      ripper_lex_without_warning at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:156
  compile_with_errors_suppressed at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:35
      ripper_lex_without_warning at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:151
                 set_auto_indent at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:211
             process_auto_indent at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline/line_editor.rb:1711
                       input_key at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline/line_editor.rb:1653
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:329
                            each at org/jruby/RubyArray.java:1988
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:328
                         read_io at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:403
                            loop at org/jruby/RubyKernel.java:1586
                         read_io at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:373
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:326
                            loop at org/jruby/RubyKernel.java:1586
                  inner_readline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:324
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/reline.rb:254
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/forwardable.rb:238
                   readmultiline at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/forwardable.rb:238
                            gets at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/input-method.rb:418
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:539
                   signal_status at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:770
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:538
                             lex at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:284
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:253
                            loop at org/jruby/RubyKernel.java:1586
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:250
                           catch at org/jruby/RubyKernel.java:1292
        each_top_level_statement at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb/ruby-lex.rb:249
                      eval_input at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:557
                             run at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:491
                           catch at org/jruby/RubyKernel.java:1292
                             run at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:490
                           start at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/stdlib/irb.rb:419
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/lib/ruby/gems/shared/gems/irb-1.4.1/exe/irb:11
                            load at org/jruby/RubyKernel.java:1091
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/bin/irb:23
                            eval at org/jruby/RubyKernel.java:1143
                          <main> at /home/byteit101/.rvm/rubies/jruby-9.4.0.0/bin/jruby_executable_hooks:22
... 43 levels...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions