close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 14 years ago

#1224 closed enhancement (fixed)

Managing Descriptions. PutDescription extended

Reported by: Pedro Gea Owned by: Víctor de Buen Remiro
Priority: high Milestone: Mantainance
Component: Kernel Version: head
Severity: blocker Keywords:
Cc:

Description

Extraído de #1220.

En PutDescription aceptaría el mecanismo vía texto, también para objetos cualesquiera, de modo que funcionara:

Anything PutDescription("Elemento privado", "modulo::variable");

del mismo modo que:

Anything PutDescription("Elemento privado", modulo::variable);

Además, así podría reasignarse la descripción para un elemento privado de un nameblock, que de otro modo no es posible.

Change History (13)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Voy a ver si no es muy complicado lo de pasar por texto, pues el código C++ de PutDescription ya parece una novela policíaca, pero no comprendo la utilidad de esta petición, especialmente lo de poner descripción a miembros privados.

En principio parece absurdo describir al usuario cosas que no puede ver. En estos casos yo creo que lo que procede es un comentario en el propio código para guía del programador.

Es decir, puedo estar de acuerdo en lo de pasar por texto pero eso no tiene porqué implicar necesariamente dar acceso a miembros privados, a no ser que haya una justificación que se me escapa.

comment:2 Changed 14 years ago by Víctor de Buen Remiro

(In [3591]) Refs #1224

comment:3 Changed 14 years ago by Pedro Gea

No hay ninguna motivación especial más que la de dar homogeneidad y la de describir miembros privados.

Podría aceptar que no se puedan describir los miembros privados porque habitualmente no son visibles (salvo que se configure lo contrario) pero tampoco hay una razón para que no se deba poder hacer.

comment:4 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: newclosed

(In [3592]) Fixes #1224

comment:5 Changed 14 years ago by Víctor de Buen Remiro

PutDescription ya funciona sobre expresiones referenciales, según puede comprobarse en el [source/tolp/trunk/tol_tests/tol/Bugzilla/bug_001224/check.tol test], pero da error si se trata de un miembro privado, pues el mecanismo de reconocimiento sintáctico es el mismo.

La razón es simple: no tiene ninguna utilidad y sí mucho coste.

comment:6 Changed 14 years ago by Víctor de Buen Remiro

La razón por la que se permite dar visibilidad en el interfaz a los miembros públicos es la depuración por parte del programador. Al usuario final no le importan para nada los miembros privados, para eso son privados para que no se pueda acceder a ellos y no molesten.

comment:7 Changed 14 years ago by Pedro Gea

Bueno, pues no se ponen descripciones a los miembros privados.

Por cierto, sobre una versión de TOL recién compilada, no funciona PutDescription sobre clases o estructuras, no sé si es algo transitorio o un bug a raíz de los últimos cambios.

Se obtienen errores al ejecutar expresiones del tipo:

Anything PutDescription("La clase", "modulo::@clase");

Véanse las líneas 50 y 64 del ejemplo: descriptions.tol.

comment:8 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

comment:9 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

(In [3618]) Fixes #1224

comment:10 Changed 14 years ago by Víctor de Buen Remiro

(In [3624]) Refs #1224

comment:11 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

Falta el tratamiento de estructuras de forma análoga a las clases.

comment:12 Changed 14 years ago by Víctor de Buen Remiro

(In [3625]) Refs #1224

comment:13 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

(In [3626]) Fixes #1224

Note: See TracTickets for help on using tickets.