Hakana é um TypeChecker para hack, construído pela Slack.
Ele complementa o Hack TypeChecker existente que vem com o HHVM, fornecendo informações adicionais além do escopo do TypeChecker oficial.
O objetivo principal de Hakana é inferir tipos precisos na base de código e fazê -lo rapidamente.
Boa inferência de tipo permite que Hakana faça várias outras coisas valiosas:
Isso não se destina a substituir o TypeChecker padrão do Hack, que suporta recursos extras (por exemplo, contextos e recursos) que não são imediatamente relevantes para digitar inferência.
Essa ferramenta não foi projetada para ser executada em todos os teclas, mas possui um servidor de idiomas com suporte para verificações no salvamento.
Clone este repositório, instale ferrugem e carga, se você ainda não o fez.
Run git submodule init && git submodule update para garantir que o HHVM esteja presente (o analisador do Hakana empresta o HHVM).
Em seguida, execute cd third-party/hhvm && git apply ../../hhvm-patch.diff && cd ../../ para aplicar alguns patches que permitem a compilação WASM.
Em seguida, execute cargo build --release
Isso criará um binário em ./target/release/hakana-default
Você pode executar todos os testes com: cargo run --bin hakana --release test tests
Você pode executar um teste individual com cargo run --bin hakana test <path-to-test-dir>