Árvore de páginas

Melhoria - Proteção e comportamento de compilação

Esta build contém melhorias e proteções nas operações de compilação de código-fonte AdvPL, para dar mais segurança e confiabilidade no código-fonte da aplicação.

Abrangência ERP 10 e 11

Situação

Utilização do TOTVS | Development Studio para compilação de um código-fonte AdvPL, onde acidentalmente foram declaradas duas funções com o mesmo nome, ou o corpo de dois métodos da mesma classe AdvPL também declarados com o mesmo nome para a mesma classe ou ainda foi declarada uma FUNCTION ou STATIC FUNCTION com o mesmo nome de uma função básica da linguagem AdvPL.

Ocorrências

  • Ao acionar a compilação através do TOTVS | Development Studio, o código-fonte é compilado com sucesso, sem apresentar nenhuma mensagem de advertência no TOTVS | Development Studio, apenas registrando no log de console, do TOTVS | Application Server, a mensagem "FUNÇÃO DUPLICADA".
  • No caso da declaração de um FUNCTION com o mesmo de uma função básica da linguagem AdvPL, não era apresentada nenhuma informação adicional ou erro de compilação. Porém, ao executar o programa, a aplicação era interrompida com ocorrência de erro fatal "funcao AADD com problemas de compilacao. regere o RPO".
  • Caso fosse declarada uma STATIC FUNCTION com o mesmo nome de uma função básica da linguagem AdvPL, também não era apresentada nenhuma mensagem de erro ou advertência no TOTVS | Development Studio, e ao executar o programa, a STATIC FUNCTION não era executada.

Melhorias

  • Implementada a validação de compilação para a situação acima, onde a compilação é terminada com a ocorrência de erro “C2021 Redefinition of function <FNNAME>”, onde FNNAME indica o nome da função que erroneamente foi declarada em duplicidade no código-fonte atual.
  • Caso a duplicidade de código-fonte esteja relacionada a um método de uma classe AdvPL,  a mensagem de erro apresentada informa “C2021 Redefinition of method <METHODNAME> on class <CLNAME>”, onde METHODNAME e CLNAME indicam o nome do método e da classe, respectivamente, declarados em duplicidade no código-fonte.
  • A declaração de uma FUNCTION ou STATIC FUNCTION com mesmo nome de uma função básica da Linguagem AdvPL não é permitida, e caso seja feita, o processo de compilação será interrompido com a ocorrência “C2022 Redefinition of language function <FNNAME>”, onde FNNAME mostra o nome da função erroneamente declarada.

Informação adicional

Tarefa realizada mediante processo de melhora contínua da ferramenta.

  • Sem rótulos