Erros, qualidade e depuração
Diagnósticos
Leia código, mensagem, localização e notas. A0001 significa que a sintaxe foi
reconhecida, mas o recurso não é executável nesta alpha. Erros de parse, nomes
ou tipos devem ser resolvidos antes de run.
nova check .
nova lint . --deny-warnings
nova fmt . --check
Para formatar, remova --check: nova fmt . --indent 4. Passe um arquivo ou
diretório válido; versões antigas tentavam abrir . como arquivo e exibiam
“Acesso negado”, problema corrigido na toolchain atual.
Testes
Arquivos *_test.nova contêm funções cujo nome começa com test_:
fn add(a: int, b: int) -> int { return a + b; }
fn test_add() -> void {
assert_eq(add(2, 3), 5);
}
nova test .
nova test . --filter add
nova test . --backend interp
Use assert e assert_eq. Teste também falhas esperadas e imports. Não há
framework estabilizado de fixtures, mocks ou cobertura.
Depuração por fases
nova tokens main.nova --meaningful-only
nova ast main.nova
nova ir main.nova
nova bytecode main.nova
nova run main.nova --backend interp
Se VM e interpretador discordarem, reduza para um exemplo mínimo e relate versão, SO, backend, comando e saídas. Não há debugger source-level ainda.