aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src/asn1ct_gen_ber_bin_v2.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2014-05-07 07:43:20 +0200
committerBjörn Gustavsson <[email protected]>2014-06-05 13:46:29 +0200
commit0db2668288bf399983e0f6daac85b00d68ab0360 (patch)
tree0b28dce2da12afe33ed3e6597837b0f22ebc02f1 /lib/asn1/src/asn1ct_gen_ber_bin_v2.erl
parent6b74e6b29dba58b7d54e9e7c4d8f3e1ab28fa66d (diff)
downloadotp-0db2668288bf399983e0f6daac85b00d68ab0360.tar.gz
otp-0db2668288bf399983e0f6daac85b00d68ab0360.tar.bz2
otp-0db2668288bf399983e0f6daac85b00d68ab0360.zip
BER: Eliminate dialyzer warnings for specialized decode functions
Diffstat (limited to 'lib/asn1/src/asn1ct_gen_ber_bin_v2.erl')
-rw-r--r--lib/asn1/src/asn1ct_gen_ber_bin_v2.erl18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/asn1/src/asn1ct_gen_ber_bin_v2.erl b/lib/asn1/src/asn1ct_gen_ber_bin_v2.erl
index 9cb343629d..e51b0898be 100644
--- a/lib/asn1/src/asn1ct_gen_ber_bin_v2.erl
+++ b/lib/asn1/src/asn1ct_gen_ber_bin_v2.erl
@@ -67,15 +67,21 @@
%%===============================================================================
dialyzer_suppressions(_) ->
- case asn1ct:use_legacy_types() andalso
- asn1ct_func:is_used({ber,encode_bit_string,4}) of
+ case asn1ct:use_legacy_types() of
+ false -> ok;
+ true -> suppress({ber,encode_bit_string,4})
+ end,
+ suppress({ber,decode_selective,2}),
+ emit([" ok.",nl]).
+
+suppress({M,F,A}=MFA) ->
+ case asn1ct_func:is_used(MFA) of
false ->
ok;
true ->
- emit([" {A,B,C,D} = Arg,",nl,
- " encode_bit_string(A, B, C, D),",nl])
- end,
- emit([" ok.",nl]).
+ Args = [lists:concat(["element(",I,", Arg)"]) || I <- lists:seq(1, A)],
+ emit([" ",{call,M,F,Args},com,nl])
+ end.
%%===============================================================================
%% encode #{typedef, {pos, name, typespec}}