diff options
author | Björn Gustavsson <[email protected]> | 2011-11-07 14:01:06 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-11-07 14:01:06 +0100 |
commit | d0f1b81f1f0a8955c09d8a626d2d747950c52459 (patch) | |
tree | 6a4c727e7d122cb73ecffd6db8d39d4daf7874df /lib/debugger/src/dbg_iload.erl | |
parent | 2d4f4dca7a511dd61cc99f01bdf2a3dadaef9e5e (diff) | |
parent | ff432e262e65243cbc983fcb002527f8fae8c78b (diff) | |
download | otp-d0f1b81f1f0a8955c09d8a626d2d747950c52459.tar.gz otp-d0f1b81f1f0a8955c09d8a626d2d747950c52459.tar.bz2 otp-d0f1b81f1f0a8955c09d8a626d2d747950c52459.zip |
Merge branch 'bjorn/external-funs/OTP-9643'
* bjorn/external-funs/OTP-9643:
EEP-23: Allow variables in fun M:F/A
Reference manual: Improve the documentation for external funs
Test calling a parameterized module within a fun
beam_loader: Support external funs in the literal pool
Diffstat (limited to 'lib/debugger/src/dbg_iload.erl')
-rw-r--r-- | lib/debugger/src/dbg_iload.erl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/debugger/src/dbg_iload.erl b/lib/debugger/src/dbg_iload.erl index ce5631e45f..3c95ef8068 100644 --- a/lib/debugger/src/dbg_iload.erl +++ b/lib/debugger/src/dbg_iload.erl @@ -369,6 +369,14 @@ expr({'fun',Line,{function,F,A},{_Index,_OldUniq,Name}}, _Lc) -> As = new_vars(A, Line), Cs = [{clause,Line,As,[],[{local_call,Line,F,As,true}]}], {make_fun,Line,Name,Cs}; +expr({'fun',Line,{function,{atom,_,M},{atom,_,F},{integer,_,A}}}, _Lc) + when 0 =< A, A =< 255 -> + %% New format in R15 for fun M:F/A (literal values). + {value,Line,erlang:make_fun(M, F, A)}; +expr({'fun',Line,{function,M,F,A}}, _Lc) -> + %% New format in R15 for fun M:F/A (one or more variables). + MFA = expr_list([M,F,A]), + {make_ext_fun,Line,MFA}; expr({call,Line,{remote,_,{atom,_,erlang},{atom,_,self}},[]}, _Lc) -> {dbg,Line,self,[]}; expr({call,Line,{remote,_,{atom,_,erlang},{atom,_,get_stacktrace}},[]}, _Lc) -> |