// the following cases should use the correct representation in the predicate
|
d => d.I1 == E.E1 ? true : false
|
d => d.S1 == E.E1 ? true : false
|
d => E.E1 == d.I1 ? true : false
|
d => E.E1 == d.S1 ? true : false
|
|
// the following test case should use the representation from the serializer registry
|
true ? E.E1 : E.E2
|
|
// the following test cases should use the representation implied by the predicate for the result
|
d.I1 == E.E1 ? E.E1 : E.E2
|
d.S1 == E.E1 ? E.E1 : E.E2
|
|
// the following test cases should use the representation implied by the ifTrue/ifFalse clauses for the result
|
d.I1 == E.E1 ? d.I1 : E.E2
|
d.I1 == E.E1 ? d.I1 : d.I2
|
d.I1 == E.E1 ? d.S1 : E.E2
|
d.I1 == E.E1 ? E.E1 : d.I2
|
d.I1 == E.E1 ? E.E1 : d.S2
|
d.I1 == E.E1 ? d.S1 : d.S2
|
d.S1 == E.E1 ? d.I1 : E.E2
|
d.S1 == E.E1 ? d.I1 : d.I2
|
d.S1 == E.E1 ? d.S1 : E.E2
|
d.S1 == E.E1 ? E.E1 : d.I2
|
d.S1 == E.E1 ? E.E1 : d.S2
|
d.S1 == E.E1 ? d.S1 : d.S2
|
|
|
// the following test cases should throw because the ifTrue/ifFalse clauses have conflicting representations
|
d.I1 == E.E1 ? d.I1 : d.S2
|
d.I1 == E.E1 ? d.S1 : d.I2
|