HHClient 为 HSL 中的函数抛出未绑定名称错误
HHClient throw Unbound name error for functions in HSL
我是 hacklang 的新手。我有一段代码(从HSL github页面复制)
use namespace HH\Lib\{Vec,Dict,Keyset,Str,Math};
function main(vec<?int> $foo): vec<string> {
return $foo
|> Vec\filter_nulls($$)
|> Vec\map($$, $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 函数并且
抛出 未绑定名称(键入):HH\Lib\Vec\filter_nulls 类错误。
如评论中所述,ignored_paths: ["vendor/*"]
(ignored_paths
是一个 hhconfig 选项 available since 3.23)阻止类型检查器了解 OP 的 HSL。一般来说,抑制 vendor
中的错误并不简单,需要进行一些研究才能将必要的定义暴露给类型检查器。
我是 hacklang 的新手。我有一段代码(从HSL github页面复制)
use namespace HH\Lib\{Vec,Dict,Keyset,Str,Math};
function main(vec<?int> $foo): vec<string> {
return $foo
|> Vec\filter_nulls($$)
|> Vec\map($$, $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 函数并且 抛出 未绑定名称(键入):HH\Lib\Vec\filter_nulls 类错误。
如评论中所述,ignored_paths: ["vendor/*"]
(ignored_paths
是一个 hhconfig 选项 available since 3.23)阻止类型检查器了解 OP 的 HSL。一般来说,抑制 vendor
中的错误并不简单,需要进行一些研究才能将必要的定义暴露给类型检查器。