Correção - Comportamento de funções sem retorno
Esta build contém uma correção no comportamento de funções sem retorno explícito declaradas na linguagem AdvPL.
Abrangência | ERP 10 |
Situação | Utilização de funções criadas no repositório de funções (Function, User Function, Static Function e etc.), onde a mesma não possui a instrução "RETURN" no final. |
Ocorrência | Neste caso, o comportamento esperado era que a função retornasse NIL. Porém, no TOTVS Application Server, a função retornava o resultado correspondente à última instrução executada na função. |
Correção | Realizada a correção do comportamento de retorno das funções sem retorno explícito, para retornar NIL. |
Informações adicionais |
ExemploUser function Teste() // Função de testes para MinhaFunc() Static function MinhaFunc() // Função sem retorno explícito Para testar o código fonte acima, é necessário compilar e executar o código fonte a partir do TOTVS SmartClient a função U_TESTE(), além de verificar a informação impressa no log de console do TOTVS Application Server. Nas builds anteriores a 7.00.090818P, do TOTVS Application Server, a função MinhaFunc() retornava a string "ABCDEF", pois a última linha executada do código fonte era uma atribuição com o operador +=, onde o resultado implícito do operador é o resultado da atribuição. A partir desta build 7.00.090818P, esta função passa a retornar NIL, pois não existe retorno explícito declarado. De qualquer forma, mesmo que uma determinada função não tenha retorno, deve-se adotar por boa prática de programação e codificar no final da funçao a instrução RETURN, para indicar explicitamente que neste ponto a função efetivamente termina.
|