interface II { in void ia(); in void ic(); out void oa(); out void ob(); behaviour { bool b = false; [!b] on ia: b = true; [b] on ia: illegal; on ic: {} [b] on inevitable: {b = false; oa;} [b] on inevitable: {b = false; ob;} } } interface IO { in void ia(); in void ic(); out void oa(); behaviour { bool b = false; [!b] on ia: b = true; [b] on ia: illegal; on ic: {} [b] on optional: {b = false; oa;} } } component compliance_out_async_inevitable { provides II pp; requires IO rp; behaviour { bool b = false; [!b] on pp.ia(): {b = true; rp.ia();} on pp.ic(): {} on rp.oa(): pp.oa(); } } // Expect compliance fail: // Spec II allows // and // Impl compliance_out_async_inevitable performs: //