aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/src/asn1ct_gen_per.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2013-03-12 16:45:16 +0100
committerBjörn Gustavsson <[email protected]>2013-05-31 14:52:20 +0200
commitf4e25971233abdc0fe8872cb8d7b5113d4198a3d (patch)
treea2f1fec4ea1ce32db9787faf88135f4ff3c120ba /lib/asn1/src/asn1ct_gen_per.erl
parent66cc5110814e74d602f6bda65e8388babc3982a3 (diff)
downloadotp-f4e25971233abdc0fe8872cb8d7b5113d4198a3d.tar.gz
otp-f4e25971233abdc0fe8872cb8d7b5113d4198a3d.tar.bz2
otp-f4e25971233abdc0fe8872cb8d7b5113d4198a3d.zip
Eliminate the {notype,_} return value from asn1ct_gen:type/1
The last clause in asn1ct_gen:type/1 does a catched call to type2/1. If the type2/1 fails {notype,X} is returned. Since the body of type2/1 essentially is: case lists:member(X, [...]) of true -> {primitive,bif}; false -> case lists:member(X, [...]) of true -> {constructed,bif}; false -> {undefined,user} end end there is no way that type2/1 can fail. Therefore, we can eliminate the catch and put the body of type2/1 into the last clause of type/1. We can also eliminate the code in the callers of type/1 that match {notype,X}.
Diffstat (limited to 'lib/asn1/src/asn1ct_gen_per.erl')
-rw-r--r--lib/asn1/src/asn1ct_gen_per.erl4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/asn1/src/asn1ct_gen_per.erl b/lib/asn1/src/asn1ct_gen_per.erl
index 170a3c7352..4572d41711 100644
--- a/lib/asn1/src/asn1ct_gen_per.erl
+++ b/lib/asn1/src/asn1ct_gen_per.erl
@@ -94,9 +94,7 @@ gen_encode_user(Erules,D) when is_record(D,typedef) ->
#'Externaltypereference'{module=CurrMod,type=Etype} ->
emit({"'enc_",Etype,"'(Val).",nl,nl});
#'Externaltypereference'{module=Emod,type=Etype} ->
- emit({"'",Emod,"':'enc_",Etype,"'(Val).",nl,nl});
- {notype,_} ->
- emit({"'enc_",InnerType,"'(Val).",nl,nl})
+ emit({"'",Emod,"':'enc_",Etype,"'(Val).",nl,nl})
end.