如何推断函数的返回类型?

时间:2020-09-02 06:12:58

标签: types type-inference type-systems

我正在开发一种可编译为Javascript的类型化编程语言。 现在,我在推断函数的返回类型时遇到了一些麻烦。

我尚未实现并集或交集类型。到目前为止,该语言仅支持基本类型, 用户定义的类/函数类型和泛型(例如Array)。它的语法与Python非常相似,类型系统或多或少相似。

例如,以下代码块的返回类型为number

func foo(a: number):
  for i = 1, a:
    if i <= 10:
      return 10
   return 11

我可以根据运算符(+-* / ...)和函数类型签名来推断表达式的类型。 但是,如何推断函数的类型,因为它们内部有语句,而if内的语句可能并不总是返回?

任何帮助表示感谢,谢谢。

0 个答案:

没有答案