diff options
author | Björn Gustavsson <[email protected]> | 2014-11-28 14:38:38 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2015-01-12 11:40:28 +0100 |
commit | 2a343fda2c75f52bbf35b6d5ca9f3c97037c50b5 (patch) | |
tree | cfde8eb2db23200fcdbe1636f54463ddc5f28a07 /lib | |
parent | 76075cb862d629a9624ab4db98ff876e261fc796 (diff) | |
download | otp-2a343fda2c75f52bbf35b6d5ca9f3c97037c50b5.tar.gz otp-2a343fda2c75f52bbf35b6d5ca9f3c97037c50b5.tar.bz2 otp-2a343fda2c75f52bbf35b6d5ca9f3c97037c50b5.zip |
Modernize error handling for instatiation of parameterized types
Diffstat (limited to 'lib')
-rw-r--r-- | lib/asn1/src/asn1ct_check.erl | 6 | ||||
-rw-r--r-- | 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) -> |