soutaro / rbs-inline

Inline RBS type declaration
MIT License
165 stars 6 forks source link

Unhandled exception occurs with files containing nested modules #27

Closed sinsoku closed 1 month ago

sinsoku commented 1 month ago

Steps to reproduce

An error occurs when parsing a file containing nested modules such as:

# rbs_inline: enabled

module M
  module A
  end
end

class Foo
  include M::A
end

Expected behavior

No error occurs.

Actual behavior

Exits with an error as below.

$ bundle exec rbs-inline issue.rb
bundler: failed to load command: rbs-inline (/usr/local/rvm/gems/default/bin/rbs-inline)
/usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/ast/members.rb:377:in `rbs': unhandled exception
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:186:in `translate_member'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:62:in `block in translate_class_decl'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:60:in `each'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:60:in `translate_class_decl'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:43:in `translate_decl'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:34:in `block in write'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:33:in `each'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:33:in `filter_map'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/writer.rb:33:in `write'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/cli.rb:145:in `block in run'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/cli.rb:124:in `each'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/lib/rbs/inline/cli.rb:124:in `run'
        from /usr/local/rvm/gems/default/gems/rbs-inline-0.3.0/exe/rbs-inline:6:in `<top (required)>'
        from /usr/local/rvm/gems/default/bin/rbs-inline:25:in `load'
        from /usr/local/rvm/gems/default/bin/rbs-inline:25:in `<top (required)>'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:58:in `load'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli/exec.rb:23:in `run'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli.rb:451:in `exec'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli.rb:34:in `dispatch'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/cli.rb:28:in `start'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/exe/bundle:28:in `block in <top (required)>'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
        from /usr/local/rvm/gems/default/gems/bundler-2.5.7/exe/bundle:20:in `<top (required)>'
        from /usr/local/rvm/gems/default/bin/bundle:25:in `load'
        from /usr/local/rvm/gems/default/bin/bundle:25:in `<main>'