Сорбет не улавливает явное несоответствие хэш-подписи - PullRequest
1 голос
/ 25 октября 2019

Учитывая следующий код:

# typed: strict

extend T::Sig

sig { params(x: T::Hash[String,String]).returns(NilClass) }
def foo(x); end

foo("foo" => 123)

Playground Link

Я ожидаю, что Sorbet распознает, что переданный хэш имеет неверный параметр значения. Как правильно объявить подпись, которая гарантирует, что переданный хэш содержит только допустимые типы значений?

1 Ответ

2 голосов
/ 26 октября 2019

К сожалению, это известная проблема в Сорбете

https://github.com/sorbet/sorbet/issues/713

Вы все делаете правильно, и Сорбет подвел вас. Не стесняйтесь следить за этой проблемой, но мы полагаем, что эту конкретную ошибку будет довольно сложно исправить из-за некоторых других ограничений, которые мы пытаемся сохранить.

...