Retornos
Klar requer retornos explícitos.
Até mesmo funções
voiddevem retornar explicitamente.
Retorno void
Ambas as formas funcionam atualmente:
return;
return null;
return null; é atualmente recomendado pelo projeto, mas pode ser removido posteriormente para eliminar ambiguidade.
Exemplo de retorno ausente
Se você esquecer de retornar, Klar emite um diagnóstico semântico.
Exemplo (simplificado):
[K:E205] MissingReturnStatement
ERROR (SEMANTIC)
...
Nota:
Até mesmo funções 'void' devem retornar explicitamente.
Importante
Além disso, apenas UM retorno de função é permitido e ele DEVE estar explicitamente localizado no final da função, ou seja, retornos dentro do escopo de estruturas de controle não são permitidos.
Retornos antecipados causam um erro.