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 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 Víctor de Buen Remiro)

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 Víctor de Buen Remiro

Description: modified (diff)
Milestone: OOP Implementation
Status: newassigned
Version: 2.0.1

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

Resolution: remind
Status: assignedclosed

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)

comment:3 Changed 16 years ago by Víctor de Buen Remiro

Priority: highestlowest
Severity: blockertrivial

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

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 Víctor de Buen Remiro

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:6 Changed 16 years ago by Víctor de Buen Remiro

Resolution: remindfixed

(In [1163]) Fixes #711

comment:7 Changed 15 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

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

Resolution: remind
Status: reopenedclosed
Note: See TracTickets for help on using tickets.