RecordFlux icon indicating copy to clipboard operation
RecordFlux copied to clipboard

Disjunction of outgoing edges to the same target not possible with optional fields

Open rssen opened this issue 4 years ago • 1 comments

It is not possible to merge to outgoing edges to the same target field using a disjunction, if there is an optional field on path. Checking the example specification yields:

test_3.rflx:18:20: model: error: undefined variable "C"
test_3.rflx:18:20: model: info: on path A -> B -> D -> Final
package Test is

   type T is mod 2 ** 8;

   type Frame is
      message
         A : T
            then B
               if A = 0
            then C
               if A /= 0;
         C : T
            then D;
         B : T
            then D;
         D : T
            then null
               if (C = 0 and A /= 0) or (B = 1 and A = 0);
      end message;
      
end Test;

rssen avatar Nov 24 '20 12:11 rssen

Cf. https://github.com/Componolit/RecordFlux-specifications/pull/8#discussion_r528601096

senier avatar Nov 01 '22 13:11 senier