3 个稳定版本

使用旧的 Rust 2015

1.1.0 2017 年 7 月 18 日
1.0.5 2017 年 6 月 1 日
1.0.4 2017 年 4 月 25 日

#7 in #kailua


4 个包中使用 (直接使用 2 个)

MIT/Apache

310KB
6K SLoC

Kailua 的类型系统。

Kailua 的类型系统在原则上是一种 Hindler-Milner 类型系统,对子类型、渐进式类型和行多态有重大扩展。"原则上"的限定是因为存在(不幸的是)几个已知的差异,但它们至少被认为是(低优先级)错误。自然地,不支持完整的类型推断(这在我们要将记录、数组和映射 自由转换时甚至更不希望)。

Kailua 类型系统的两个定义性方面是:nil 不进行检查(不可扩展)记录可能仍然包含未知标签。这是为了让类型系统在没有破坏 Lua 兼容性的情况下可用的结果;它与 TypeScript 1.x 的类型系统相当。类型系统确实有不允许 nil 或访问未知标签的类型,但它们主要存在是为了避免错误,而不是为了使类型系统一致。

泛型计划中,但尚未实现;这可能是最缺失的类型系统功能。许多递归类型也没有得到适当的检查,这需要类型系统仍然没有实现的适当的出现检查(啊)。

依赖关系

~5MB
~99K SLoC