2015-08-20 2 views
0

Согласно Erlang Types and Function Specifications, чтобы ограничить тип выходного сигнала функции в :: ограничения могут быть использованы в when части -spec атрибута:Какова последняя Erlang версия требует is_subtype

-spec id(X) -> X when X :: tuple(). 

Для обеспечения обратной совместимости можно также использовать:

-spec id(X) -> X when is_subtype(X, tuple()). 

Но использование is_subtype не рекомендуется (не рекомендуется). Какова последняя версия Erlang, требующая использования is_subtype вместо ::?

+0

Если вам интересно с практической точки зрения, просто используйте новую нотацию, не беспокоясь – Lol4t0

+0

Мне нужно поддерживать старые версии Erlang и знать, если я могу использовать текущую нотацию ... – jvf

ответ

5

Синтаксис -spec id(X) -> X when X :: tuple(). не скомпилирован с версией Erlang/OTP R13B04, а с R14B04. Синтаксис -spec id(X) -> X when is_subtype(X, tuple()). компилируется как с R13B04, так и с R14B04. Поэтому я считаю, что ответ на ваш вопрос - Erlang/OTP R13B04.

Смежные вопросы