From 3f93effe62bcc34685ddccb97cd230aa30652d97 Mon Sep 17 00:00:00 2001 From: BenceJanosSzabo <bence.janos.szabo@ericsson.com> Date: Tue, 28 Mar 2017 15:54:55 +0200 Subject: [PATCH] Anytype again untagged by default Change-Id: Iae7addef1989dc1acdb4659ec58b3921294793e8 Signed-off-by: BenceJanosSzabo <bence.janos.szabo@ericsson.com> --- compiler2/Type.cc | 2 + compiler2/Type_chk.cc | 4 ++ .../XML/TTCNandXML/AnytypeTest.ttcnpp | 60 ++----------------- 3 files changed, 11 insertions(+), 55 deletions(-) diff --git a/compiler2/Type.cc b/compiler2/Type.cc index 29137564f..a4dc52835 100644 --- a/compiler2/Type.cc +++ b/compiler2/Type.cc @@ -3253,6 +3253,8 @@ namespace Common { return p_tt2==T_SET_A || p_tt2==T_SET_T; case T_ANY: return p_tt2 == T_ANY || p_tt2 == T_OSTR; + case T_ANYTYPE: + return p_tt2 == T_ANYTYPE; // these should never appear? case T_REFD: case T_REFDSPEC: diff --git a/compiler2/Type_chk.cc b/compiler2/Type_chk.cc index 00b8a43d3..c46d1a48c 100644 --- a/compiler2/Type_chk.cc +++ b/compiler2/Type_chk.cc @@ -105,6 +105,10 @@ void Type::chk() break; case T_ANYTYPE: // TODO maybe check for address type and add it automagically, then fall through + if(!xerattrib) { + xerattrib = new XerAttributes; + } + xerattrib->untagged_ = true; case T_SEQ_T: case T_SET_T: case T_CHOICE_T: diff --git a/regression_test/XML/TTCNandXML/AnytypeTest.ttcnpp b/regression_test/XML/TTCNandXML/AnytypeTest.ttcnpp index 61d863eea..d64288605 100644 --- a/regression_test/XML/TTCNandXML/AnytypeTest.ttcnpp +++ b/regression_test/XML/TTCNandXML/AnytypeTest.ttcnpp @@ -31,7 +31,7 @@ const universal charstring c_anytype_str_b := "<anytype>\n\t<charstring>str</charstring>\n</anytype>\n\n"; const universal charstring c_anytype_str := -"<anytype>\n\t<charstring>str</charstring>\n</anytype>\n\n"; +"<charstring>str</charstring>\n\n"; testcase enc_anytype() runs on SAP { @@ -58,7 +58,7 @@ const universal charstring c_anytypeal_str_b := "<MyAnytype>\n\t<charstring>str</charstring>\n</MyAnytype>\n\n"; const universal charstring c_anytypeal_str := -"<MyAnytype>\n\t<charstring>str</charstring>\n</MyAnytype>\n\n"; +"<charstring>str</charstring>\n\n"; testcase enc_anytypealias() runs on SAP { @@ -74,10 +74,7 @@ testcase dec_anytypealias() runs on SAP /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -type record of anytype RoAnytype -with { - variant ([-]) "untagged" -} +type record of anytype RoAnytype; DECLARE_XER_ENCODERS(RoAnytype, roat); DECLARE_EXER_ENCODERS(RoAnytype, roat); @@ -121,9 +118,6 @@ type record MyAnytypeRec { MyAnytype anytype_field_alias2, RoAnytype anytype_field_ro, charstring str -} with { - variant (anytype_field) "untagged"; - variant (anytype_field_alias) "untagged"; } DECLARE_XER_ENCODERS(MyAnytypeRec, recat); @@ -162,12 +156,8 @@ const universal charstring c_myanytyperec_str := "<MyAnytypeRec>\n"& "\t<charstring>abc</charstring>\n"& "\t<charstring>def</charstring>\n"& -"\t<anytype_field2>\n"& -"\t\t<charstring>abcdef</charstring>\n"& -"\t</anytype_field2>\n"& -"\t<anytype_field_alias2>\n"& -"\t\t<charstring>defghi</charstring>\n"& -"\t</anytype_field_alias2>\n"& +"\t<charstring>abcdef</charstring>\n"& +"\t<charstring>defghi</charstring>\n"& "\t<anytype_field_ro>\n"& "\t\t<charstring>ttt</charstring>\n"& "\t\t<integer>4</integer>\n"& @@ -193,7 +183,6 @@ testcase dec_myanytyperec() runs on SAP type record of anytype AnyTypeRo2 with { variant "untagged"; - variant ([-]) "untagged"; } type record MyAnytypeRec2 { @@ -241,8 +230,6 @@ with { type record DFERecAnyType { anytype at -} with { - variant (at) "untagged"; } DECLARE_XER_ENCODERS(DFERecAnyType, dferec); @@ -261,40 +248,6 @@ testcase tc_dec_anytype_DFE() runs on SAP { /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -type record UseNilRecAnyType { - anytype at optional -} with { - variant "useNil"; -} - -DECLARE_XER_ENCODERS(UseNilRecAnyType, nilrec); -DECLARE_EXER_ENCODERS(UseNilRecAnyType, nilrec); - -const UseNilRecAnyType c_nilrec := {at := {MyBool := true}}; - -const universal charstring c_nilrec_str_b := -"<UseNilRecAnyType>\n"& -"\t<at>\n"& -"\t\t<MyBool><true/></MyBool>\n"& -"\t</at>\n"& -"</UseNilRecAnyType>\n\n"; - -const universal charstring c_nilrec_str := -"<UseNilRecAnyType>\t<MyBool>true</MyBool>\n</UseNilRecAnyType>\n\n"; - -testcase tc_enc_anytype_usenil() runs on SAP { - CHECK_METHOD(bxer_enc_nilrec, c_nilrec, c_nilrec_str_b); - CHECK_METHOD(exer_enc_nilrec, c_nilrec, c_nilrec_str); -} - -testcase tc_dec_anytype_usenil() runs on SAP -{ - CHECK_DECODE(bxer_dec_nilrec, c_nilrec_str_b, UseNilRecAnyType, c_nilrec); - CHECK_DECODE(exer_dec_nilrec, c_nilrec_str, UseNilRecAnyType, c_nilrec); -} - -/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - control { execute(enc_anytype()); execute(dec_anytype()); @@ -312,9 +265,6 @@ control { execute(tc_dec_anytype_ro_untagged()); execute(tc_dec_anytype_DFE()); - - execute(tc_enc_anytype_usenil()); - execute(tc_dec_anytype_usenil()); } -- GitLab