#1394 closed defect (fixed)
ObjectExist and global variables
Reported by: | Pedro Gea | Owned by: | Víctor de Buen Remiro |
---|---|---|---|
Priority: | highest | Milestone: | Mantainance |
Component: | Kernel | Version: | head |
Severity: | blocker | Keywords: | |
Cc: |
Description (last modified by )
Se encuentra una incoherencia al usar la función ObjectExist
junto con el operador ::
y la gramática Anything
;
Real ObjectExist("Anything", "::Tolerance"); // => 0 Real ObjectExist("Anything", "Tolerance"); // => 1 Real ObjectExist("Real", "Tolerance"); // => 1 Real ObjectExist("Real", "::Tolerance"); // => 1
Change History (3)
comment:1 Changed 13 years ago by
Description: | modified (diff) |
---|
comment:3 Changed 13 years ago by
En la versión binaria v2.0.2 b.0.22.alpha recién subida está resuelto el problema, al menos provisionalmente.
Note: See
TracTickets for help on using
tickets.
La función especial
EvGlobalFind
, que es la que evalúa las expresiones del tipo::GlobalName
está programada para devolver error en caso de usarse con el tipoAnything
pues en puridad no tiene porqué haber un sólo objeto con ese nombre en el ámbito global con lo que no está resuelto de forma unívoca.Lo cierto es que a
ObjectExist
no le importa si hay varios, lo importante es si hay alguno o no.Por el momento he hecho un apaño para que el
::
devuelva uno cualquiera pero debería salir un warning o algo para avisar de que hay más de uno.En cualquier caso no se debería usar
Anything
cuando se sabe el tipo exacto porque en el mejor de los casos irá más lento.