Первоначальная ошибка и проблемы с настройкой Sorbet - PullRequest
0 голосов
/ 21 февраля 2020

Я добавляю Sorbet в довольно обычное приложение Rails среднего и малого размера.

После запуска сценария установки 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)); end
  • Кажется, сообщать о проблемах в драгоценных камнях, которые я не контролирую, как activerecord:
sorbet/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

Спасибо

1 Ответ

0 голосов
/ 21 февраля 2020

Я считаю, что упомянутая выше ошибка segfault была основной проблемой, и ошибка проглатывалась сценарием установки.

Я последовал совету здесь , чтобы попытаться найти проблему c файлы. Я заметил, что Sorbet тратит много времени на проверку файлов Rust .fingerprint в нашем проекте (встроенном в наше приложение Rails с Helix). Однако я не смог воспроизвести сегфо. После удаления этого каталога я смог запустить srb init! Теперь моя установка работает как положено!

...