Hola a todos,
He encontrado una falla que esta hace bastante tiempo en el compilador de Delphi. Se trata de que el compilador no es capaz de reportar
hints y
warnings en metodos genericos, cuando si escribimos el mismo metodo sin usar el tipo generico si puede detectar los potenciales problemas. Ya hemos hablado
aqui de lo importante que son los hint y warning y ejemplos de situaciones en las que puede salvar el dia hay cientos, como
este
He creado un reporte en el sitio de Embarcadero, este es el
link
Cuantos mas voten en la incidencia, mayor prioridad deberia tener para el equipo de Embarcadero y deberiamos verlo solucionado
El problema es reproducible en Delphi 2010, Delphi 10 Seattle y Delphi 10.1 Berlin, por lo que asumo que existe desde Delphi 2009 que es cuando se introdujeron los genericos hasta el dia de hoy
Quien no disponga de una version nueva de Delphi puede reproducirlo facilmente con la version Delphi 10.1 Berlin Starter. En el reporte pueden encontrar el siguiente fragmento de codigo:
Código PHP:
type
TTest = class
public
function GenericUnasignedFunctionResult<T>: Integer;
function UnasignedFunctionResult: Integer;
procedure UnusedLocalVar;
procedure GenericUnusedLocalVar<T>;
end;
procedure TTest.GenericUnusedLocalVar<T>;
var
Unused: Integer; // no se emite hint aqui
begin
end;
procedure TTest.UnusedLocalVar;
var
Unused: Integer; // H2164 Variable 'Unused' is declared but never used in 'TTest.Hint'
begin
end;
function TTest.UnasignedFunctionResult: Integer;
begin
// W1035 Return value of function 'TTest.UnasignedFunctionResult' might be undefined
end;
function TTest.GenericUnasignedFunctionResult<T>: Integer;
begin
// no se emite warning aqui
end;
Considero que este problema es de altisima prioridad y deberia ser solucionado lo antes posible
Asi que este es un llamado para que todo aquel que considere que este problema merece su debida importancia, vote el reporte, por favor