typeprof-0.21.11 + rbs-3.6.0 raise NoMethodError
还没有人认领这个 Issue。
评估
调研方向
使用 Ruby 3.3.5、typeprof 0.21.11 和 rbs 3.6.0 重现该故障,然后检查第 451 行附近 conv_block 处的 lib/typeprof/import.rb。确认兼容性问题解决后,typeprof /dev/null 可以在不出现 NoMethodError 的情况下完成。
由索引模型根据 Issue 内容生成。
描述
How to reproduce:
% docker run --rm -it ruby:3.3.5 /bin/bash
root@5086137b08f0:/# gem i typeprof:0.21.11
Fetching typeprof-0.21.11.gem
Successfully installed typeprof-0.21.11
1 gem installed
A new release of RubyGems is available: 3.5.16 → 3.5.20!
Run `gem update --system 3.5.20` to update your installation.
root@5086137b08f0:/# typeprof --version
typeprof 0.21.11
root@5086137b08f0:/# typeprof /dev/null
# TypeProf 0.21.11
# Classes
root@5086137b08f0:/# gem update rbs
Updating installed gems
Updating rbs
Fetching rbs-3.6.0.gem
Building native extensions. This could take a while...
Successfully installed rbs-3.6.0
Gems updated: rbs
root@5086137b08f0:/# typeprof /dev/null
/usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:451:in `conv_block': undefined method `required_positionals' for an instance of RBS::Types::UntypedFunction (NoMethodError)
lead_tys = blk.required_positionals.map {|type| conv_type(type.type) }
^^^^^^^^^^^^^^^^^^^^^
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:405:in `conv_func'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:396:in `block in conv_method_def'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:395:in `map'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:395:in `conv_method_def'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:216:in `block (3 levels) in conv_classes'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:199:in `each'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:199:in `block (2 levels) in conv_classes'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:189:in `each'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:189:in `block in conv_classes'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:349:in `each_class_decl'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:171:in `conv_classes'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:135:in `dump_json'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:123:in `load_rbs'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:42:in `get_builtin_env'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/import.rb:17:in `initialize'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/analyzer.rb:306:in `new'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/analyzer.rb:306:in `initialize'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/config.rb:89:in `new'
from /usr/local/bundle/gems/typeprof-0.21.11/lib/typeprof/config.rb:89:in `analyze'
from /usr/local/bundle/gems/typeprof-0.21.11/exe/typeprof:9:in `<top (required)>'
from /usr/local/bundle/bin/typeprof:25:in `load'
from /usr/local/bundle/bin/typeprof:25:in `<main>'
- 主要语言
- Ruby
- 星标
- 833
- 派生
- 99
- 平均合并
- 9 小时 30 分钟
- 30 天内合并 PR
- 12
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ruby/typeprof 的其他 Issue
-
难度 5/5 一周以上 新手友好度 28/100
-
难度 4/5 3-5 天 新手友好度 45/100
-
难度 3/5 1-2 天 新手友好度 25/100
-
难度 3/5 1-2 天 新手友好度 30/100
-
难度 3/5 1-2 天 新手友好度 35/100
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 75/100
palladius/rails8-app-on-gcp#145 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
rubocop/rubocop-rspec#2236 ·
-
bug
难度 2/5 1-3 小时 新手友好度 70/100
riscv/riscv-unified-db#2624 · 1 个 reaction ·
-
难度 1/5 1 小时以内 新手友好度 88/100