Quando si esegue un confronto tra un Concrete domain (es. MyDomain) ed il suo type domain (es. Integer), il parser restituisce l'errore:
Problems locating the function eq(Prod(MyDomain,Integer))
Exception: asmeta.definitions.domains.impl.ConcreteDomainImpl cannot be cast to asmeta.definitions.domains.TypeDomain
L'errore viene generato solo dalle versioni di Asmeta successive (circa) alla 1140.
La versione 1125, invece, non genera l'errore.
Esempio di codice:
asm problemEqConcreteDomain
import STDL/StandardLibrary
signature:
domain MyDomain subsetof Integer
dynamic controlled foo: MyDomain
definitions:
domain MyDomain = {1..10}
main rule r_main =
if(foo=1) then
foo := 2
endif
default init s0:
function foo = 1
In futuro bisogna ripensare alle regole sulla compatibilità tra tipi, in particolare gli AnyDomain, e modificare di conseguenza OCL_checker.java