Opened 16 years ago
Closed 15 years ago
#711 closed defect (remind)
Creación de Objetos (sin nombre) de una Clase
Reported by: | Javier Portugal | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | lowest | Milestone: | OOP Implementation |
Component: | OOP | Version: | 2.0.1 |
Severity: | trivial | Keywords: | |
Cc: |
Description (last modified by )
Si intento crear un objeto de una clase pero no le asigno nombre en lugar de crear un objeto de la clase, crea un simple NameBlock
// Clase objeto Class Object { Text _.name; Text GetName(Real void) { Text _.name } }; // Creo objeto (Este si es un objeto de la Clase Object) Object obj1 = [[ Text _.name = "Objeto 1" ]]; // Intento crear objeto sin nombre (es un NameBlock, no es un objeto de la clase Object) Object [[ Text _.name = "Objeto 2" ]];
Change History (8)
comment:1 Changed 16 years ago by
Description: | modified (diff) |
---|---|
Milestone: | → OOP Implementation |
Status: | new → assigned |
Version: | → 2.0.1 |
comment:2 Changed 16 years ago by
Resolution: | → remind |
---|---|
Status: | assigned → closed |
comment:3 Changed 16 years ago by
Priority: | highest → lowest |
---|---|
Severity: | blocker → trivial |
comment:4 Changed 16 years ago by
El problema es facil de vadear sin ma´s que recordar que las declaraciones de instancias de clases deben de poner nombre obigatoriamente hasta nueva orden.
Trataré de que dé algún mensaje de warning o error cuando se detecte esta situación y evitar así problemas mayores
comment:5 Changed 16 years ago by
Ahora el código anterior devuelve este mensaje de error que ayuda a detectar y solventar el problema
ERROR: [1] La expresión no devuelve una instancia de Class Object: Object SetOfAnything[[Text _.name="Objeto 2"]] Recuerde que las declaraciones de instancias deben seguir la sintaxis: Class <instance_name> = [[ ... ]];
comment:7 Changed 15 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:8 Changed 15 years ago by
Resolution: | → remind |
---|---|
Status: | reopened → closed |
La sintaxis de Class es más limitada que la del resto de tipos por que el parser no estaba inicialmente diseñado para esto. Por este motivo dejo el ticket en estado de recordatorio (remind)