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

问题描述

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

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

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

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

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...