/***************************************************
 ** @author   STF 487
 ** @version  0.0.1
 ** @purpose  1:6.2.5.1, union alternative costraint passed through extended type reference
 ** @verdict  pass reject
 ***************************************************/

// The following requirement is tested:
// If an alternative in a union type or a subtype of a union type is referenced by
// the dot notation, the resulting type is the set of values allowed for that
// alternative imposed by the constraints of the alternative declaration itself
// (i.e. any constraints applied to the union type itself are ignored).

module NegSem_06020501_referencing_fields_of_union_type_005 {
    type component GeneralComp {
	}

    type union U {
		integer option1 (1..10),
		charstring option2
	}

    type U.option1 UnionItem;

    testcase TC_NegSem_06020501_referencing_fields_of_union_type_005() runs on GeneralComp {
		var UnionItem v_val := 100;
        if (v_val == 100) { setverdict(pass); }
        else { setverdict(fail); }
	}

	control{
		execute(TC_NegSem_06020501_referencing_fields_of_union_type_005());
	}
}