From 2a343fda2c75f52bbf35b6d5ca9f3c97037c50b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Fri, 28 Nov 2014 14:38:38 +0100 Subject: Modernize error handling for instatiation of parameterized types --- lib/asn1/src/asn1ct_check.erl | 6 ++++-- lib/asn1/test/error_SUITE.erl | 15 +++++++++++---- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/asn1/src/asn1ct_check.erl b/lib/asn1/src/asn1ct_check.erl index e6e6fa73c1..e926312226 100644 --- a/lib/asn1/src/asn1ct_check.erl +++ b/lib/asn1/src/asn1ct_check.erl @@ -3154,8 +3154,8 @@ match_args(S,FA = [FormArg|Ft], AA = [ActArg|At], Acc) -> end; match_args(_S,[], [], Acc) -> lists:reverse(Acc); -match_args(_,_, _, _) -> - throw({error,{asn1,{wrong_number_of_arguments}}}). +match_args(S, _, _, _) -> + asn1_error(S, param_wrong_number_of_arguments). %%%%%%%%%%%%%%%%% %% categorize_arg(S,FormalArg,ActualArg) -> {FormalArg,CatgorizedActualArg} @@ -5877,6 +5877,8 @@ format_error(multiple_uniqs) -> "implementation limitation: only one UNIQUE field is allowed in CLASS"; format_error({namelist_redefinition,Name}) -> io_lib:format("the name '~s' can not be redefined", [Name]); +format_error(param_wrong_number_of_arguments) -> + "wrong number of arguments"; format_error(reversed_range) -> "ranges must be given in increasing order"; format_error({syntax_duplicated_fields,Fields}) -> diff --git a/lib/asn1/test/error_SUITE.erl b/lib/asn1/test/error_SUITE.erl index eec0d1e195..e8f48b6187 100644 --- a/lib/asn1/test/error_SUITE.erl +++ b/lib/asn1/test/error_SUITE.erl @@ -459,12 +459,19 @@ parameterization(Config) -> P = {M, <<"Parameterization DEFINITIONS AUTOMATIC TAGS ::= BEGIN\n" " NotUppercase{lowercase} ::= INTEGER (lowercase)\n" + + " P{T1,T2} ::= SEQUENCE { a T1, b T2 }\n" + " S ::= P{OCTET STRING}\n" + "END\n">>}, {error, - [{structured_error,{'Parameterization',2},asn1ct_check, - {illegal_typereference,lowercase}} - ] - } = run(P, Config), + [{structured_error,{M,2},asn1ct_check, + {illegal_typereference,lowercase}}, + {structured_error, + {M,4}, + asn1ct_check,param_wrong_number_of_arguments} + ] + } = run(P, Config), ok. syntax(Config) -> -- cgit v1.2.3