需要 is_subtype 的最后一个 Erlang 版本是什么

What is the last Erlang Version requiring is_subtype

根据Erlang Types and Function Specifications,要在::约束中约束函数的输出类型,可以在-spec属性的when部分使用:

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

为了向后兼容,也可以使用:

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

但不鼓励(弃用)使用 is_subtype。需要使用 is_subtype 而不是 ::?

的最后一个 Erlang 版本是什么

语法 -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.