Skip to content

shorthand method definition with parenthesis without an argument will result in You've found a bug! #361

Description

@aoki1980taichi

This is a valid ruby code

def f() = 1

However, rufo results in

You've found a bug!
It happened while trying to format the file shorthand_method_def_rufo_bug.rb
Please report it to https://github.com/ruby-formatter/rufo/issues with code that triggers it
/home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:3886:in 'Rufo::Formatter#bug': Expected token on_int, not on_sp at [[1, 7], :on_sp, " ", BEG] (Rufo::Bug)
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:3881:in 'Rufo::Formatter#check'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:3438:in 'Rufo::Formatter#consume_token'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:212:in 'Rufo::Formatter#visit'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:1571:in 'Rufo::Formatter#visit_bodystmt'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:348:in 'Rufo::Formatter#visit'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:2059:in 'Rufo::Formatter#visit_def_from_name'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:1972:in 'block in Rufo::Formatter#visit_def'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:4015:in 'Rufo::Formatter#push_hash'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:1971:in 'Rufo::Formatter#visit_def'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:376:in 'Rufo::Formatter#visit'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:488:in 'block (2 levels) in Rufo::Formatter#visit_exps'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:4007:in 'Rufo::Formatter#push_node'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:487:in 'block in Rufo::Formatter#visit_exps'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:466:in 'Array#each'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:466:in 'Enumerable#each_with_index'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:466:in 'Rufo::Formatter#visit_exps'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:202:in 'Rufo::Formatter#visit'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/formatter.rb:178:in 'Rufo::Formatter#format'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:146:in 'Rufo::Command#format'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:107:in 'Rufo::Command#format_file'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:85:in 'block in Rufo::Command#format_args'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:78:in 'Array#each'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:78:in 'Rufo::Command#format_args'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:40:in 'Rufo::Command#run'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/lib/rufo/command.rb:12:in 'Rufo::Command.run'
        from /home/taichi/.rbenv/versions/3.4.5/lib/ruby/gems/3.4.0/gems/rufo-0.18.2000000000020260529/exe/rufo:4:in '<top (required)>'
        from /home/taichi/.rbenv/versions/3.4.5/bin/rufo:25:in 'Kernel#load'
        from /home/taichi/.rbenv/versions/3.4.5/bin/rufo:25:in '<main>'

ruby 3.4.5 (2025-07-16 revision 20cda200d3) +PRISM [x86_64-linux]

I checked with theis version of rufo.
https://github.com/ruby-formatter/rufo/tree/5186ef60d6b34fde3da5f66699ce625620c41090

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions