Strategies [blog/lti/strategies]

为了实现我们的目标,我们需要设计一套高效的策略来处理上述三种类型推断的场景。 下面的是两种本文将要介绍的主要策略:

  • 局部类型参数合成 (Local Synthesis of Type Arguments):此策略旨在自动推断多态函数应用中被省略的类型参数。其基本思路是,通过比较函数参数的期望类型与实际参数的类型,生成一组关于待定类型参数的局部子类型约束。随后,算法会求解这组约束,并选取一组能使整个应用表达式获得「最佳」(即最精确、最小)结果类型的解。
  • 双向类型信息传播 (Bidirectional Propagation of Type Information):此策略主要用于推断匿名函数中绑定变量的类型标注。它通过将类型信息从外围的表达式(如函数应用节点)向下传播至其子表达式,从而为子表达式提供一个「期望类型」,以指导其类型检查过程。

这两项技术均恪守「局部性」原则,即所有推断所需的信息都只在语法树的相邻节点间传递,不涉及长距离的依赖或全局性的合一变量。