Я установил Sorbet в базу кода Rails и вижу много случаев следующей ошибки:
sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi:958:
Method ActiveRecord::ConnectionAdapters::TableDefinition#column redefined without matching argument count. Expected: 3, got: 5 https://srb.help/4010
958 | def column(
959 | name,
960 | type,
961 | index: nil,
962 | default: nil,
963 | **options
964 | ); end
sorbet/rbi/gems/activerecord.rbi:5256: Previous definition
5256 | def column(name, type, **options); end
Чтобы ошибки типа исчезли, мне нужно либо изменить typed: true
на typed: false
в одном из файлов (что исключает некоторые типы, которые не перекрываются), либо мне нужно вручную войти и удалить/закомментировать перекрывающиеся методы (что отнимает много времени и является хрупким).
Мне интересно, есть ли какое-то программное решение, где я могу сказать «в случае конфликта используйте метод с более высокой арностью» или «всегда выбирайте определение типа сорбета».
Опять же, это в кодовой базе Rails, но я полагаю, что это будет существовать для любого конфликта между сгенерированными вручную и автоматически сгенерированными RBI.