Каков онтологический статус фреймворка комбината типа «Никогда»? - PullRequest
2 голосов
/ 22 февраля 2020

В структуре Combine, что именно является типом Never?

Я не имею в виду, как он используется или что он означает; Я это понимаю. Я имею в виду, что такое «что такое быть никогда» (как сказал бы Аристотель).

Я спрашиваю, потому что не могу найти объявление любого Never, кроме этого :

https://developer.apple.com/documentation/swift/never

Но структура комбината Never не может быть такой Never, потому что комбинат Never должен может использоваться как тип Failure, а тип Failure может быть только усыновителем Error:

https://developer.apple.com/documentation/combine/subscriber/3213651-failure

Но я не могу найти заявления о том, что Never в моей первой ссылке принимает протокол Error, как того требует моя вторая ссылка.

Так что я ожидаю, что смогу найти либо (1) место где заявлено, что Never принимает протокол Error или (2) объявление совершенно другого Never. Но я не могу его найти.

1 Ответ

4 голосов
/ 23 февраля 2020

Полагаю, вы нашли правильные определения Never и Failure.

В ответ на ваш онтологический вопрос, как бы, Never - это необитаемый тип. См. SE-0102 .

Соответствие Error можно найти по адресу github.com / apple / swift / stdlib / public / core / Policy.swift .

FWIW, периферийно связанный SE-0215 ​​ явно рассматривает Never как тип Error.

...