diff --git a/lib/asn1/src/asn1ct_check.erl b/lib/asn1/src/asn1ct_check.erl index 772b417c6386..dd7c4a1a3a92 100644 --- a/lib/asn1/src/asn1ct_check.erl +++ b/lib/asn1/src/asn1ct_check.erl @@ -2294,9 +2294,10 @@ use_maps(#state{options=Opts}) -> lists:member(maps, Opts). create_map_value(Components, ListOfVals) -> - Zipped = lists:zip(Components, ListOfVals), - #{Name => V || {#'ComponentType'{name=Name},V} <- Zipped, - V =/= asn1_NOVALUE}. + #{Name => V || + #'ComponentType'{name=Name} <- Components && + V <- ListOfVals, + V =/= asn1_NOVALUE}. normalize_seq_or_set(SorS, S, [{#seqtag{val=Cname},V}|Vs], diff --git a/lib/asn1/src/asn1ct_constructed_ber_bin_v2.erl b/lib/asn1/src/asn1ct_constructed_ber_bin_v2.erl index 5c7ffc3556bd..efb29f231f3f 100644 --- a/lib/asn1/src/asn1ct_constructed_ber_bin_v2.erl +++ b/lib/asn1/src/asn1ct_constructed_ber_bin_v2.erl @@ -171,9 +171,9 @@ enc_match_input(#gen{pack=record}, ValName, CompList) -> enc_match_input(#gen{pack=map}, ValName, CompList) -> Len = length(CompList), Vars = [lists:concat(["Cindex",N]) || N <- lists:seq(1, Len)], - Zipped = lists:zip(CompList, Vars), M = [[{asis,Name},":=",Var] || - {#'ComponentType'{prop=mandatory,name=Name},Var} <- Zipped], + #'ComponentType'{prop=mandatory,name=Name} <- CompList && + Var <- Vars], case M of [] -> ok; @@ -181,7 +181,8 @@ enc_match_input(#gen{pack=map}, ValName, CompList) -> emit(["#{",lists:join(",", M),"} = ",ValName,com,nl]) end, Os0 = [{Name,Var} || - {#'ComponentType'{prop=Prop,name=Name},Var} <- Zipped, + #'ComponentType'{prop=Prop,name=Name} <- CompList && + Var <- Vars, Prop =/= mandatory], F = fun({Name,Var}) -> [Var," = case ",ValName," of\n" @@ -316,8 +317,8 @@ dec_external(#gen{pack=map}, _RecordName) -> Vars = asn1ct_name:all(term), Names = ['direct-reference','indirect-reference', 'data-value-descriptor',encoding], - Zipped = lists:zip(Names, Vars), - MapInit = lists:join(",", [["'",N,"'=>",{var,V}] || {N,V} <- Zipped]), + MapInit = lists:join(",", [["'",N,"'=>",{var,V}] || + N <- Names && V <- Vars]), emit(["OldFormat = #{",MapInit,"}",com,nl, "ASN11994Format =",nl, {call,ext,transform_to_EXTERNAL1994_maps, diff --git a/lib/asn1/src/asn1ct_constructed_per.erl b/lib/asn1/src/asn1ct_constructed_per.erl index b57277b17090..c79e7f6d4c51 100644 --- a/lib/asn1/src/asn1ct_constructed_per.erl +++ b/lib/asn1/src/asn1ct_constructed_per.erl @@ -455,8 +455,8 @@ dec_external(#gen{pack=map}, _Typename) -> Vars = asn1ct_name:all(term), Names = ['direct-reference','indirect-reference', 'data-value-descriptor',encoding], - Zipped = lists:zip(Names, Vars), - MapInit = lists:join(",", [["'",N,"'=>",{var,V}] || {N,V} <- Zipped]), + MapInit = lists:join(",", [["'",N,"'=>",{var,V}] || + N <- Names && V <- Vars]), emit(["OldFormat = #{",MapInit,"}",com,nl, "ASN11994Format =",nl, {call,ext,transform_to_EXTERNAL1994_maps,