diff options
author | Björn Gustavsson <[email protected]> | 2011-11-30 10:59:59 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-11-30 10:59:59 +0100 |
commit | a4029940e309518f5500fc2c403ccdf62f9fa4e4 (patch) | |
tree | 7bc28a603eeac3070debe8c55bec8c0e80767a4c /lib/parsetools | |
parent | ca03aa3d8a97e5d63c1055c19d2bd5a037acc28f (diff) | |
parent | 99615c70dcfddc01b70b51e30dbfa7f476cb733a (diff) | |
download | otp-a4029940e309518f5500fc2c403ccdf62f9fa4e4.tar.gz otp-a4029940e309518f5500fc2c403ccdf62f9fa4e4.tar.bz2 otp-a4029940e309518f5500fc2c403ccdf62f9fa4e4.zip |
Merge branch 'bjorn/deprecate-tuple-funs/OTP-9649'
* bjorn/deprecate-tuple-funs/OTP-9649:
erts: Warn the first time a tuple fun is called
otp_mibs: Eliminate use of tuple fun
os_mon: Eliminate use of tuple fun
asn1: Eliminate use of tuple fun
parsetools: Eliminate use of tuple fun
mnesia tests: Eliminate use of tuple fun
snmp: Eliminate use of tuple fun
wrap_log_reader_SUITE: Eliminate use of tuple fun
big_SUITE: Eliminate use of tuple fun
file_SUITE: Eliminate use of tuple fun
fprof: Eliminate use of tuple fun
xref_compiler: Eliminate use of tuple fun
shell: Eliminate use of tuple funs
erl_eval: Eliminate use of tuple funs
user_sup: Eliminate use of tuple fun
Diffstat (limited to 'lib/parsetools')
-rw-r--r-- | lib/parsetools/include/yeccpre.hrl | 5 | ||||
-rw-r--r-- | lib/parsetools/test/yecc_SUITE.erl | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/lib/parsetools/include/yeccpre.hrl b/lib/parsetools/include/yeccpre.hrl index f638529aa4..3672394fc5 100644 --- a/lib/parsetools/include/yeccpre.hrl +++ b/lib/parsetools/include/yeccpre.hrl @@ -28,10 +28,11 @@ parse(Tokens) -> -spec parse_and_scan({function() | {atom(), atom()}, [_]} | {atom(), atom(), [_]}) -> yecc_ret(). -parse_and_scan({F, A}) -> % Fun or {M, F} +parse_and_scan({F, A}) -> yeccpars0([], {{F, A}, no_line}, 0, [], []); parse_and_scan({M, F, A}) -> - yeccpars0([], {{{M, F}, A}, no_line}, 0, [], []). + Arity = length(A), + yeccpars0([], {{fun M:F/Arity, A}, no_line}, 0, [], []). -spec format_error(any()) -> [char() | list()]. format_error(Message) -> diff --git a/lib/parsetools/test/yecc_SUITE.erl b/lib/parsetools/test/yecc_SUITE.erl index a5f66b48e9..3d26adf1be 100644 --- a/lib/parsetools/test/yecc_SUITE.erl +++ b/lib/parsetools/test/yecc_SUITE.erl @@ -1197,7 +1197,7 @@ yeccpre(Config) when is_list(Config) -> catch error: error -> ok end, - try parse_and_scan({{yecc_test, scan}, [exit]}) + try parse_and_scan({fun yecc_test:scan/1, [exit]}) catch exit: exit -> ok end, @@ -1650,10 +1650,11 @@ yeccpre_v1_2() -> parse(Tokens) -> yeccpars0(Tokens, false). -parse_and_scan({F, A}) -> % Fun or {M, F} +parse_and_scan({F, A}) -> yeccpars0([], {F, A}); parse_and_scan({M, F, A}) -> - yeccpars0([], {{M, F}, A}). + Arity = length(A), + yeccpars0([], {fun M:F/Arity, A}). format_error(Message) -> case io_lib:deep_char_list(Message) of |