NovaLang0.2 alpha

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.