Open stefjoosten opened 10 months ago
Could you supply a reproducer?
It is not the ENFORCE
syntax. I tried:
ROLE ExecEngine MAINTAINS serving
RULE serving : realization;I[ApplicationComponent];serving
|- realization[CommunicationNetwork*ApplicationInterface]
VIOLATION (TXT "{EX} InsPair;realization;CommunicationNetwork;", SRC I, TXT ";ApplicationInterface;", TGT I)
with exactly the same result. However, now I did get the following log output:
EXECENGINE.INFO: InsPair(realization,Platform,id-3111baed624645bd87068eda7e1a28de,ApplicationComponent,id-65b1bbb7d0d44a76bb29bff324254216) [] {"request_id":"ea323ae053"}
Notice how the code has stealthily changed the type of the relation realization[CommunicationNetwork*ApplicationInterface]
into realization[CommunicationNetwork*ApplicationComponent]
.
The concept ApplicationComponent
is sandwiched between two other concepts
CLASSIFY ApplicationInterface ISA ApplicationComponent
CLASSIFY ApplicationComponent, ApplicationInterface ISA ArchiObject
I can sense a diagnosis coming up. I need to run some more tests to validate my hypothesis.
What happened
I got a yellow error message:
I traced it back to the following code fragment:
I have checked that the relations mentioned in this rule exists:
The type checker accepted this rule, hence code was generated and the error could occur.
What I expected
Version of Ampersand that was used
The example used
Ampersandtarski/prototype-framework:v1.17
as a base container.