Closed ricardohmlsp closed 3 years ago
@ricardohmlsp Não ficou claro se isso está ocorrendo na versão 1.3.0 em diante. Isso ocorre também na última versão 1.3.2?
Além disso, qual a versão do AppServer que está utilizando?
Veja em Gerando logs como gerar e nos envie os logs para análise.
Coloquei essas duas linhas em um fonte aqui e não apresentaram nenhum erro e nem warnings.
Você tem outras extensões instaladas além do tds-vscode?
Olá Estou utilizando a versão 1.3.2 e sim desde a 1.3.0 pra frente apresenta o erro.
Versão do Appserver:
Dados do Server
Versão: TOTVS Varejo
Build AppServer: 7.00.191205P-20210114 - 64 bits
Nome do servidor: OMEGAG5
Sistema operacional: Windows 10
Appserver version: 19.3.1.5
Build DBAccess: 20200606-20201110
Release do RPO: 12.1.027 - Out 2020
Release do dicionário: 12.1.027 - Out 2020
Local files: CTREE
License server: 2014 - 3.2.0
DB DataBase: MSSQL
DB API Build: 20200606-20201110
Ambiente: Varejo
Objeto: INTNOTA
Programa: INTNOTA.TLPP
Tipo: ADVPL
Build: BUILD_USER
Data: 14/07/2021 19:53:17
Dicionário no banco de dados: Sim
Tenho essas extensões
As Demais são de Dart , Flutter Docker etc...
De: lwtnb-wrk @.> Enviada em: quarta-feira, 14 de julho de 2021 20:08 Para: totvs/tds-vscode @.> Cc: ricardohmlsp @.>; Mention @.> Assunto: Re: [totvs/tds-vscode] Após release 1.2.5 o tratamento de tipos está comprometido (#758)
@ricardohmlsp https://github.com/ricardohmlsp Não ficou claro se isso está ocorrendo na versão 1.3.0 em diante. Isso ocorre também na última versão 1.3.2?
Além disso, qual a versão do AppServer que está utilizando?
Veja em Gerando logs https://github.com/totvs/tds-vscode/blob/master/TROUBLESHOOTING.md#gerando-logs como gerar e nos envie os logs para análise.
Coloquei essas duas linhas em um fonte aqui e não apresentaram nenhum erro e nem warnings.
Você tem outras extensões instaladas além do tds-vscode?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/totvs/tds-vscode/issues/758#issuecomment-880267405 , or unsubscribe https://github.com/notifications/unsubscribe-auth/ARCWA4KA5AAXK4QLJ6CEXQLTXYKDXANCNFSM5AMIPUBA . https://github.com/notifications/beacon/ARCWA4M3ORPLQJAJUTEWLV3TXYKDXA5CNFSM5AMIPUBKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGR35BDI.gif
@ricardohmlsp Nos envie os logs então, se possivel um fonte que ocorra os erros e um print da tela com os erros. Adianto que anexos desse tipo devem ser pelo github, pois por email eles não sao anexados na issue.
totvsls.log totvsls_in.log totvsls_out.log
Segue arquivos para analise
@ricardohmlsp Grato pelos logs. Conseguimos reproduzir o seu problema e estamos averiguando. Somente para deixar claro, esses "erros" ao abrir o fonte, são gerados pelo Linter como ferramenta de apoio ao desenvolvimento. Ele deveria dar os mesmo erros e warnings que a compilação, o que não esta ocorrendo neste caso. Mas no final, o que vale é a compilação, então se na compilação não apresentar erro, a principio estará tudo bem no RPO.
@lwtnb-wrk muito obrigado pelo retorno e que bom que reproduziu , sim o problema é apenas antes da compilação visualmente fica chato mas quando compila os "errros" somem e sabe que está tudo ok.
Abraço
Boa tarde @ricardohmlsp Conversamos com o pessoal do Appserver para entender esse problema e na verdade temos a seguinte situação: A análise dos fontes pelo Linter é feita através da última versão do Appserver (nesse caso que ainda não está disponível para clientes), por isso podem existir diferenças no compilador. É interessante se atentar a esse tipo de mudança pois quer dizer que na próxima versão do Appserver essa situação irá virar um erro de fato, ou seja, não será mais possível compilar o fonte em questão.
Na próxima versão do Appserver o compilador TLPP está mais crítico para evitar erros durante a execução e já acusá-los durante a compilação.
No seu caso, o problema acontece pois um objeto nunca pode ser acessado como se fosse um array. A solução definitiva seria mudar o tipo de variável para o tipo exato do retorno da User Function findNota. Parece ser um array ou um json, ou seja, a variável oNota deve ser declarada: Local oNota := nil as Json ou Local oNota := nil as Array
Recomendamos que a situação seja corrigida agora para evitar problemas no futuro, mas se quiser, pode continuar utilizando e ignorar os erros de Linter que aparecerem nesses fontes.
Muito obrigado pela atenção e pelo reporte de problema.
Olá @danielbolognani entendi, porem tenho uma questão nesse exemplo abaixo
Local cNota := "" as character
cNota := aNotas[1,3]
o Listner apresenta erro , porem o conteudo da Variavel aNotas[1,3] é um character
o novo appserver vai tratar esse caso como erro fatal ou vai entender que se trata de uma atribuição que apenas em temppo de excução vai saber se o dados está correto?.
a maioria dos erros que o Listner aponta são dessa natureza.
Obrigado pela atenção
Abraço
Olá @ricardohmlsp, na verdade o problema que o Linter aponta nesse caso é em relação ao aNotas[1,3] e não ao cNota, como o aNotas[1,3] foi declarado como Object, é isso que o compilador está reclamando. A principio todos os erros que o Linter aponta serão erros fatais na próxima versão do Appserver.
Se precisar de algum auxilio ou achar que o Linter está apontando erro onde não deveria, pode anexar o fonte ou um trecho dele aqui que a gente analisa.
Abraços!
Olá @danielbolognani tem razão entendi o funcionamento e ja ajustei o código e os alertas ja sumiram , muito grato pela explicação
O tratamento de Tipos sempre acusa erro nos fontes e após compilar o mesmo entende que não existe e é dados como valido porem o projeto visualmente fica cheio de falhas ao abrir.
por exemplo
Local cNota := "" as character
cNota := cValTochar(StrZero(val(oXml[1,1]:_RETORNO:_XML_NFE:_NFEPROC:_NFE:_INFNFE:_IDE:_NNF:TEXT),9,0))
Definindo que a variavel é character e atribuindo um valor fazendo Cast para character ao validar a senteça o sistema diz que a variavel é incompativel com o valor atribuido o que não é verdade ( mesmo que no exemplo acima) tenha uma redundância feita propositalmente cValTochar sobre o StrZero o retorno é character e nao numerico.
Incompatible type N (106) Error: Incompatible type N (109) Error: Incompatible type N (486) Error: Invalid Type ARRAYS (744) Error: 'return': cannot convert from A to L (756) Error: Invalid Type ARRAYS
Após compilar os problemas somem mas se fechar o fonte e abrir novamente na IDE voltam.
na release 1.2.5 isso não ocorre, não é impeditivo mas eu ainda estou usando a release 1.2.5 por esse motivo.