Ir para conteúdo
  • Cadastre-se

dev botao

Remoção de Hints e Warning do ACBr


  • Este tópico foi criado há 2087 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores
Em 11/10/2016 at 12:46, Waldir Paim disse:

Remoção de avisos adicionados recentemente nas units em anexo.

ACBrBancoCaixa.pas

ACBrBancoCaixaSICOB.pas

Obrigado, no SVN...Commit [r12531]

Em 05/10/2016 at 08:21, Waldir Paim disse:

A variavel TemParcelas : Boolean não está mais em uso e foi mantida suas atribuições.

ACBrTEFDCliSiTef.pas

Removi o código sem uso... Obrigado

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Moderadores

Segue units alterada para remover avisos na IDE.

Na unit do Bradesco apenas uma variável sem uso.

Na unit do Banco da Amazônia fiz alguns alterações para remover os avisos e ainda simplifiquei um pouco o código que gerava bastante hints.

ACBrBancoBradesco.pas

ACBrBancoAmazonia.pas

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Isso não está errado ? a variável ANossoNumero parece indefinida

function TACBrBancoAmazonia.FormataNossoNumero(const ACBrTitulo: TACBrTitulo): String;
var
     ANossoNumero, AConvenio: String;
begin
     with ACBrTitulo do
     begin
          AConvenio := ACBrBoleto.Cedente.Convenio;
          CalcularTamMaximoNossoNumero(Carteira, ANossoNumero);
          ANossoNumero := PadLeft(NossoNumero, fpTamanhoMaximoNossoNum, '0')
     end;

     Result := ANossoNumero;
end;

 

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

De primeira eu já tinha removido ela, mas como não analisei o código do método CalcularTamMaximoNossoNumero preferi manter e removi só o hint.


Se preferir mantenha o código original e em seguida faço uma analise na CalcularTamMaximoNossoNumero e verifico se realmente se faz necessário a chamada dela.

Link para o comentário
Compartilhar em outros sites

  • Fundadores
Em 03/01/2017 at 20:57, Waldir Paim disse:

Segue units alterada para remover avisos na IDE.

Na unit do Bradesco apenas uma variável sem uso.

Na unit do Banco da Amazônia fiz alguns alterações para remover os avisos e ainda simplifiquei um pouco o código que gerava bastante hints.

ACBrBancoBradesco.pas

ACBrBancoAmazonia.pas

Apliquei uma ampla revisão nas Units do ACBrBoleto e removi todas as variáveis atribuídas e não utilizadas...

 

Em 04/01/2017 at 19:49, Waldir Paim disse:

Segue units com correção de Warning.

Ambas estavam sem atribuição de retorno da função de leitura de peso.

 

ACBrBALRinnert.pas

ACBrBALMuller.pas

Aplicado no commit:12774

Demais Units tb foram analisadas e comitadas de 12774 a 12778

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@Daniel Simoes

Muito obrigado, dessa forma o código está ficando cada vez mais limpo e com isso a IDE passa ser nossa amiga.

Fiz um ajuste que a principio parece ser tolo, mas faz sentido se não quiser trocar o nome do método.

type
  { EACBrDFeException }

  EACBrDFeException = class(Exception)
  public
    constructor Create(const Msg: String);
    constructor CreateDef(const Msg: String; Def : string='');
  end;

Veja no trecho acima que adicionei um parâmetro extra no método CreateDef;

Esse warning já foi citado aqui e esse alteração deve remover esse tipo de aviso.

http://www.projetoacbr.com.br/forum/topic/29259-w1029-duplicate-constructor-eacbrdfeexceptioncreatedef/

Se está igual a declaração no C++, adicionei um parâmetro extra mas sem uso e com isso remove esse aviso.

A outra alternativa seria remover esse metodo e utilizar somente Create que também resolveria, mas isso geraria impacto em outras units.

 

 

ACBrDFeException.pas

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Quando criei esse método, imaginei que não existisse o mesmo com esse mesmo nome no antecessor dele... (No Lazarus realmente não existe)

Mas não compreendi a modificação, a ideia foi deixar o método diferente do antecessor ? Não seria mais correto fazermos um "override" ?

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Oi @Daniel Simoes

Não existe mesmo esse método no antecessor no pascal, mas como utilizo delphi e ele critica também para o c++ builder ele está gritando aqui que o esse método no c++ está conflitando os nomes.

A solução mais simples seria mesmo mudar a assinatura ou matar o aviso ativando essa diretiva  {$WARN DUPLICATE_CTOR_DTOR OFF} no ACBr.inc.

 

{$IFDEF REMOVE_CAST_WARN}
  {$WARN IMPLICIT_STRING_CAST OFF}
  {$WARN IMPLICIT_STRING_CAST_LOSS OFF}
  {$WARN SYMBOL_DEPRECATED OFF}
  {$WARN DUPLICATE_CTOR_DTOR OFF}
{$ENDIF}

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores

@Daniel Simoes

Não satisfeito com o assunto fui buscar no help do delphi e achei isso:

Citar

W1029 Duplicate %s '%s' with identical parameters will be inacessible from C++ (Delphi)

From RAD Studio
 

Go Up to Error and Warning Messages (Delphi)

An object file is being generated and Two, differently named, constructors or destructors with identical parameter lists have been created; they will be inaccessible if the code is translated to an HPP file because constructor and destructor names are converted to the class name. In C++ these duplicate declarations will appear to be the same function.

 


unit Produce;
interface
  type
    Base = class
      constructor ctor0(a, b, c : integer);
      constructor ctor1(a, b, c : integer);
    end;

implementation
constructor Base.ctor0(a, b, c : integer);
begin
end;

constructor Base.ctor1(a, b, c : integer);
begin
end;

begin
end.


As can be seen in this example, the two constructors have the same signature and thus, when the file is compiled with one of the -j options, will produce this warning.

 


unit Solve;
interface
  type
    Base = class
      constructor ctor0(a, b, c : integer);
      constructor ctor1(a, b, c : integer; dummy : integer = 0);
    end;

implementation
constructor Base.ctor0(a, b, c : integer);
begin
end;

constructor Base.ctor1(a, b, c : integer; dummy : integer);
begin
end;

begin
end.


A simple method to solve this problem is to change the signature of one of constructors, for example, to add an extra parameter. In the example above, a default parameter has been added to ctor1. This method of approaching this error has the benefit that Delphi code using ctor1 does not need to be changed. C++ code, on the other hand, will have to specify the extra parameter to allow the compiler to determine which constructor is desired.

Como diz no trecho final mudar a assinatura não seria errado mesmo.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • 2 semanas depois ...
Em 01/03/2016 at 18:34, Waldir Paim disse:

 

Daniel,

Vou usar os testes existentes e na medida do possível acrescentar o que falta.

Eu tentei compilar os testes no Sealte e eles não rodaram, acredito que vai ser preciso alguma alteração.

Nos fontes:

Fiz umas alterações que já removem uma pequena parte dos hints e acredito que não quebrem o código existente.

No código em si alterei muito pouca coisa, só na ACBrUtil.pas a remoção de atribuição de valores que o compilador disse que não estava sendo usado.

Nas units do ACBrBoleto inclui no Uses a unit Contnrs que essas IDEs mais novas pedem para incluir.

Nas units do Sped só inclui alguns override que a IDE pediu.

ACBrBancoCaixaSICOB.pas

ACBrBancoSantander.pas

ACBrBancoCaixa.pas

ACBrBancoSicredi.pas

ACBrBancoItau.pas

ACBrBancoBrasil.pas

ACBrUtil.pas

ACBrEFDBloco_0.pas

ACBrSpedFiscal.pas

ACBrEFDBloco_K_Class.pas

ACBrEFDBloco_H_Class.pas

ACBrEFDBloco_G_Class.pas

ACBrEFDBloco_D_Class.pas

ACBrEFDBloco_C_Class.pas

ACBrEFDBloco_9_Class.pas

ACBrEFDBloco_1_Class.pas

ACBrEFDBloco_0_Class.pas

ACBrEFDBloco_E_Class.pas

ACBrEPCBloco_0.pas

ACBrEPCBloco_M.pas

ACBrEPCBloco_I_Class.pas

ACBrEPCBloco_P_Class.pas

ACBrEPCBloco_F_Class.pas

ACBrEPCBloco_D_Class.pas

ACBrEPCBloco_A_Class.pas

ACBrEPCBloco_9_Class.pas

ACBrEPCBloco_1_Class.pas

ACBrEPCBloco_M_Class.pas

ACBrEPCBloco_0_Class.pas

ACBrEPCBloco_C.pas

Não consigo visualizar os arquivos.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Todas mudanças relacionadas a esse tópico, já estão no SVN do ACBr... Fechando o tópico

https://www.projetoacbr.com.br/como-usar/

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2087 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.