Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Bug del compilador en métodos genéricos (https://www.clubdelphi.com/foros/showthread.php?t=91265)

AgustinOrtu 15-12-2016 16:57:08

Bug del compilador en métodos genéricos
 
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 
UnasignedFunctionResultInteger;
    
procedure UnusedLocalVar;
    
procedure GenericUnusedLocalVar<T>;
  
end;
 
procedure TTest.GenericUnusedLocalVar<T>;
var
  
UnusedInteger// no se emite hint aqui
begin
end
;
 
procedure TTest.UnusedLocalVar;
var
  
UnusedInteger// H2164 Variable 'Unused' is declared but never used in 'TTest.Hint'
begin
end
;
 
function 
TTest.UnasignedFunctionResultInteger;
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

Al González 15-12-2016 19:55:09

Muchas gracias, Agustín. No me había percatado de la falla. Creo que todos los que estamos leyendo esto deberíamos añadir nuestro voto inmediatamente. Para aquellos que les dé flojera, no es difícil registrarse en el nuevo sitio de reporte de fallas de Embarcadero.

Por cierto, buscando ahí text ~ "warnings" AND text ~ "generics" —el nuevo sistema de búsqueda es una de sus mayores ventajas—, encontré que el mismo problema ya había sido reportado con anterioridad, en 2010 y en 2015.

¡Cómo ha tardado Embarcadero en estabilizar los genéricos! Pero sin ellos es ya casi impensable trabajar.

Saludos.

Al González.

AgustinOrtu 15-12-2016 20:00:23

Gracias por tu apoyo y los links extra Al.

La verdad a mi no me gusta para nada el sistema JIRA, por lo menos desde el punto de vista de la experiencia de usuario. En fin, no solo preocupa que Embarcadero no lo haya solucionado ya, sino que tambien en los reportes que enlazas, veo poca preocupacion por la comunidad: no tienen "movimiento", en los reportes suele haber comentarios, gente que se suscribe y votos. Pero en estos, estan casi muertos

Yo ya he publicado en la red social Google Plus, en el grupo Delphi Developers, para que se corra la voz https://plus.google.com/+AgustinOrtu/posts/DKWKubS8KH3

jhonny 15-12-2016 20:05:32

Así es, un problema... de hecho creo que las herramientas de auditoria tampoco detectan las métricas configuradas dentro de éstos, digo "creo" porque fue en la versión XE10 donde me percaté de esto, no ahondé y ahora no tengo como corroborar en Berlin. Otra cosa es que en ocasiones cuando se declara una variable dentro de un método anónimo no se realiza correctamente el auto completado... aunque no sé si esto suceda siempre o sólo sucede cuando se trabaja en maquinas virtuales (Pues es en ellas donde trabajo).

AgustinOrtu 15-12-2016 20:07:43

Eso Johnny es otro problema, que si bien molesta, puedo vivir con ello. Esto es critico. Voy a llamar la atencion de los Product Manager ya mismo en G+

Al González 15-12-2016 20:08:20

Si sirve de algo, emití un tweet también: https://twitter.com/algonzalez74/sta...73748747202560

Neftali [Germán.Estévez] 16-12-2016 08:40:13

Un voto más.
^\||/

AgustinOrtu 16-12-2016 15:52:46

Gracias German

Bueno al menos Nick me ha respondido y eso ya me deja un poco mas tranquilo

AgustinOrtu 21-12-2016 00:08:22

Hola a todos

Gracias a los que han votado y difundido el mensaje

La incidencia ha pasado de estado "reportado" a "abierto", lo que quiere decir es que el bug fue aceptado y ya deberia estar trabajando el equipo de desarrollo para repararlo

Un saludo

jhonny 21-12-2016 00:26:14

Cita:

Empezado por AgustinOrtu (Mensaje 511920)
Hola a todos

Gracias a los que han votado y difundido el mensaje

La incidencia ha pasado de estado "reportado" a "abierto", lo que quiere decir es que el bug fue aceptado y ya deberia estar trabajando el equipo de desarrollo para repararlo

Un saludo

Que bueno, me alegra mucho que se le esté dando tratamiento a algo tan importante.


La franja horaria es GMT +2. Ahora son las 08:30:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi