Opened 13 years ago
Last modified 13 years ago
#1394 closed defect
ObjectExist and global variables — at Version 1
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
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.