HHClient为HSL中的函数抛出未绑定名称错误



我对hacklang很陌生。我有一段代码(从HSL github页面复制(

use namespace HHLib{Vec,Dict,Keyset,Str,Math};

function main(vec<?int> $foo): vec<string> {
return $foo
|> Vecfilter_nulls($$)
|> Vecmap($$, $it ==> (string) $it);
}

文件名:abc.hack我的composer.json看起来像

{
"require": {
"hhvm/hhvm-autoload": "^3.1",
"hhvm/hsl": "^4.41"
},
"require-dev": {
"hhvm/hhast": "^4.64",
"hhvm/hacktest": "^2.2",
"facebook/fbexpect": "^2.7"
}
}

我已经包括hsl。我在这里做错了什么?我也测试了其他HSL函数,看起来hh_client无法检测HSL函数和throw未绑定名称(键入(:HH\Lib\Vec\filter_nulls类型的错误。

正如评论中所讨论的,ignored_paths: ["vendor/*"](ignored_paths是自3.23以来可用的hhconfig选项(阻止了类型检查器了解OP的HSL。一般来说,抑制vendor中的错误并不简单,需要进行一些研究才能将必要的定义暴露给类型检查器。

最新更新