Loading ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/NegSem_06020104_embedding_fields_001.ttcn 0 → 100644 +17 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure the unqualified type name acts as the field name. // @verdict pass reject module NegSem_06020104_embedding_fields_001 { type record of integer RoI; type union U { record of integer RoI; } // Reject nested or anonymous types. type record R { Roi[-] U.Roi } } ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/NegSem_06020104_embedding_fields_002.ttcn 0 → 100644 +23 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded fields cannot be used as field names for assignment notations. // @verdict pass reject module NegSem_06020104_embedding_fields_002 { type component GeneralComp {} type record A { B } type record B { integer b } const A OK := { B := { b := 1 } } const A notOK := { b := 1 } control { execute(TC_NegSem_06020104_embedding_fields_002()); } } ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_001.ttcn 0 → 100644 +28 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure the unqualified type name acts as the field name. // @verdict pass accept module Sem_06020104_embedding_fields_001 { type component GeneralComp {} type record R { integer, R optional, Sem_06020104_embedding_fields_001.GeneralComp } testcase TC_Sem_06020104_embedding_fields_001() runs on GeneralComp { var R r := { integer := 23, R := {} } r.GeneralComp := GeneralComp.create setverdict(pass) } control { execute(TC_Sem_06020104_embedding_fields_001()); } } ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_002.ttcn 0 → 100644 +33 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded field is promoted when its name is unique. // @verdict pass accept, ttcn3verdict:pass module Sem_06020104_embedding_fields_002 { type component GeneralComp {} type record A { B } type record B { integer b; } testcase TC_Sem_06020104_embedding_fields_002() runs on GeneralComp { var A a; a.b := 1; a.B.b := 2; if (a.b == a.B.b) { setverdict(pass); } else { setverdict(fail); } } control { execute(TC_Sem_06020104_embedding_fields_002()); } } ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_003.ttcn 0 → 100644 +37 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded field is promoted when its name is unique. // @verdict pass accept, ttcn3verdict:pass module Sem_06020104_embedding_fields_003 { type component GeneralComp {} type record A { B } type record B { C } type record C { integer c } testcase TC_Sem_06020104_embedding_fields_003() runs on GeneralComp { var A a; a.c := 1; a.B.C.c := 2; if (a.c == a.B.C.c) { setverdict(pass); } else { setverdict(fail, "field c not promoted"); } } control { execute(TC_Sem_06020104_embedding_fields_003()); } } Loading
ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/NegSem_06020104_embedding_fields_001.ttcn 0 → 100644 +17 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure the unqualified type name acts as the field name. // @verdict pass reject module NegSem_06020104_embedding_fields_001 { type record of integer RoI; type union U { record of integer RoI; } // Reject nested or anonymous types. type record R { Roi[-] U.Roi } }
ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/NegSem_06020104_embedding_fields_002.ttcn 0 → 100644 +23 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded fields cannot be used as field names for assignment notations. // @verdict pass reject module NegSem_06020104_embedding_fields_002 { type component GeneralComp {} type record A { B } type record B { integer b } const A OK := { B := { b := 1 } } const A notOK := { b := 1 } control { execute(TC_NegSem_06020104_embedding_fields_002()); } }
ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_001.ttcn 0 → 100644 +28 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure the unqualified type name acts as the field name. // @verdict pass accept module Sem_06020104_embedding_fields_001 { type component GeneralComp {} type record R { integer, R optional, Sem_06020104_embedding_fields_001.GeneralComp } testcase TC_Sem_06020104_embedding_fields_001() runs on GeneralComp { var R r := { integer := 23, R := {} } r.GeneralComp := GeneralComp.create setverdict(pass) } control { execute(TC_Sem_06020104_embedding_fields_001()); } }
ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_002.ttcn 0 → 100644 +33 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded field is promoted when its name is unique. // @verdict pass accept, ttcn3verdict:pass module Sem_06020104_embedding_fields_002 { type component GeneralComp {} type record A { B } type record B { integer b; } testcase TC_Sem_06020104_embedding_fields_002() runs on GeneralComp { var A a; a.b := 1; a.B.b := 2; if (a.b == a.B.b) { setverdict(pass); } else { setverdict(fail); } } control { execute(TC_Sem_06020104_embedding_fields_002()); } }
ATS/core_language/06_types_and_values/0602_structured_types_and_values/060201_record_type_and_values/06020104_embedding_fields/Sem_06020104_embedding_fields_003.ttcn 0 → 100644 +37 −0 Original line number Diff line number Diff line // @author TTF23 // @purpose 1:6.2.1.4, Ensure embedded field is promoted when its name is unique. // @verdict pass accept, ttcn3verdict:pass module Sem_06020104_embedding_fields_003 { type component GeneralComp {} type record A { B } type record B { C } type record C { integer c } testcase TC_Sem_06020104_embedding_fields_003() runs on GeneralComp { var A a; a.c := 1; a.B.C.c := 2; if (a.c == a.B.C.c) { setverdict(pass); } else { setverdict(fail, "field c not promoted"); } } control { execute(TC_Sem_06020104_embedding_fields_003()); } }