我正在向一个相当普通的中小型Rails应用程序中添加Sorbet。
在运行安装脚本srb init时,我得到了以下错误确认:
Adding `typed:` sigils did not converge after 50 tries.
Would you like to continue anyway? [Y/n] 我选择了Y。该脚本随后停顿了一段时间,报告说在100次尝试后没有成功,但接着继续说已经“完成”了。我不清楚这是否意味着它起作用了。
然而,当我运行bundle exec srb tc时,有许多问题:
https://github.com/sorbet/sorbet/tree/645cc5344236f8e32d18320dd728ea6954814229/rbi/core/class.rbi#L136: The corresponding argument arg0 in the previous definition was not a splat argument
136 | def instance_methods(arg0=T.unsafe(nil)); endsorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi:464: Method ActiveRecord::Base.before_create redefined without matching argument count. Expected: 2, got: 3 https://srb.help/4010我必须手动忽略这些项目吗?我开始这么做,但我觉得这也不对。总的来说,我不确定设置是否有效,或者我收到的初始错误是否是问题所在。
版本信息:
sorbet (0.5.5384)
sorbet-runtime (0.5.5384)
sorbet-static (0.5.5384-universal-darwin-14)
rails-6.0.2.1
ruby 2.6.4p104
macOS Mojave
MacBook Pro 2017谢谢
发布于 2020-02-21 17:21:12
我相信上面提到的分段错误是核心问题,错误被安装脚本吞没了。
我按照建议这里来尝试查找有问题的文件。我注意到Sorbet花了大量的时间检查我们项目中的Rust .fingerprint文件(嵌入到我们的Rails应用程序中的Helix中)。然而,我无法复制一个片段错误。删除该目录后,我能够运行srb init!现在,我的设置正像预期的那样工作!
https://stackoverflow.com/questions/60329561
复制相似问题