File 2041-Drop-old-code-for-handling-pre-R15-abstract-format.patch of Package erlang

From 7d1b3d15a86516c3720b53ab7bb7553a31254e0a Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Tue, 12 May 2020 13:07:57 +0200
Subject: [PATCH] Drop old code for handling pre-R15 abstract format

---
 erts/doc/src/absform.xml                      |   4 +--
 lib/stdlib/examples/erl_id_trans.erl          |   4 ---
 lib/stdlib/src/erl_lint.erl                   |   4 ---
 lib/stdlib/src/erl_pp.erl                     |   8 ------
 lib/syntax_tools/src/erl_syntax.erl           |   8 ------
 lib/tools/src/xref_reader.erl                 |   9 ------
 lib/tools/test/xref_SUITE.erl                 |  26 ++----------------
 .../test/xref_SUITE_data/fun_mfa_r14.beam     | Bin 1116 -> 0 bytes
 .../test/xref_SUITE_data/fun_mfa_r14.erl      |  18 ------------
 9 files changed, 3 insertions(+), 78 deletions(-)
 delete mode 100644 lib/tools/test/xref_SUITE_data/fun_mfa_r14.beam
 delete mode 100644 lib/tools/test/xref_SUITE_data/fun_mfa_r14.erl

diff --git a/erts/doc/src/absform.xml b/erts/doc/src/absform.xml
index d3ba0932b7..65538a80f6 100644
--- a/erts/doc/src/absform.xml
+++ b/erts/doc/src/absform.xml
@@ -375,9 +375,7 @@
       </item>
       <item>
         <p>If E is a fun expression <c>fun Module:Name/Arity</c>, then Rep(E) =
-          <c>{'fun',ANNO,{function,Rep(Module),Rep(Name),Rep(Arity)}}</c>.
-          (Before Erlang/OTP R15: Rep(E) =
-          <c>{'fun',ANNO,{function,Module,Name,Arity}}</c>.)</p>
+          <c>{'fun',ANNO,{function,Rep(Module),Rep(Name),Rep(Arity)}}</c>.</p>
       </item>
       <item>
         <p>If E is a fun expression <c>fun Fc_1 ; ... ; Fc_k end</c>,
diff --git a/lib/stdlib/examples/erl_id_trans.erl b/lib/stdlib/examples/erl_id_trans.erl
index a707c45eb9..f18e13a565 100644
--- a/lib/stdlib/examples/erl_id_trans.erl
+++ b/lib/stdlib/examples/erl_id_trans.erl
@@ -480,11 +480,7 @@ expr({'fun',Line,Body}) ->
 	    {'fun',Line,{clauses,Cs1}};
 	{function,F,A} ->
 	    {'fun',Line,{function,F,A}};
-	{function,M,F,A} when is_atom(M), is_atom(F), is_integer(A) ->
-	    %% R10B-6: fun M:F/A. (Backward compatibility)
-	    {'fun',Line,{function,M,F,A}};
 	{function,M0,F0,A0} ->
-	    %% R15: fun M:F/A with variables.
 	    M = expr(M0),
 	    F = expr(F0),
 	    A = expr(A0),
diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl
index 7c717e47d1..442ea01da0 100644
--- a/lib/stdlib/src/erl_lint.erl
+++ b/lib/stdlib/src/erl_lint.erl
@@ -2426,11 +2426,7 @@ expr({'fun',Line,Body}, Vt, St) ->
                 true -> {[],St};
                 false -> {[],call_function(Line, F, A, St)}
             end;
-	{function,M,F,A} when is_atom(M), is_atom(F), is_integer(A) ->
-	    %% Compatibility with pre-R15 abstract format.
-	    {[],St};
 	{function,M,F,A} ->
-	    %% New in R15.
 	    expr_list([M,F,A], Vt, St)
     end;
 expr({named_fun,_,'_',Cs}, Vt, St) ->
diff --git a/lib/stdlib/src/erl_pp.erl b/lib/stdlib/src/erl_pp.erl
index 651c601bb0..2ccd6c53b5 100644
--- a/lib/stdlib/src/erl_pp.erl
+++ b/lib/stdlib/src/erl_pp.erl
@@ -623,15 +623,7 @@ lexpr({'fun',_,{function,F,A}}, _Prec, _Opts) ->
     [leaf("fun "),{atom,F},leaf(format("/~w", [A]))];
 lexpr({'fun',L,{function,_,_}=Func,Extra}, Prec, Opts) ->
     {force_nl,fun_info(Extra),lexpr({'fun',L,Func}, Prec, Opts)};
-lexpr({'fun',L,{function,M,F,A}}, Prec, Opts)
-  when is_atom(M), is_atom(F), is_integer(A) ->
-    %% For backward compatibility with pre-R15 abstract format.
-    Mod = erl_parse:abstract(M),
-    Fun = erl_parse:abstract(F),
-    Arity = erl_parse:abstract(A),
-    lexpr({'fun',L,{function,Mod,Fun,Arity}}, Prec, Opts);
 lexpr({'fun',_,{function,M,F,A}}, _Prec, Opts) ->
-    %% New format in R15.
     NameItem = lexpr(M, Opts),
     CallItem = lexpr(F, Opts),
     ArityItem = lexpr(A, Opts),
diff --git a/lib/syntax_tools/src/erl_syntax.erl b/lib/syntax_tools/src/erl_syntax.erl
index ed94bd383c..087ce72ded 100644
--- a/lib/syntax_tools/src/erl_syntax.erl
+++ b/lib/syntax_tools/src/erl_syntax.erl
@@ -6872,15 +6872,7 @@ implicit_fun_name(Node) ->
 	{'fun', Pos, {function, Atom, Arity}} ->
 	    arity_qualifier(set_pos(atom(Atom), Pos),
 			    set_pos(integer(Arity), Pos));
-	{'fun', Pos, {function, Module, Atom, Arity}}
-	  when is_atom(Module), is_atom(Atom), is_integer(Arity) ->
-	    %% Backward compatibility with pre-R15 abstract format.
-	    module_qualifier(set_pos(atom(Module), Pos),
-			     arity_qualifier(
-			       set_pos(atom(Atom), Pos),
-			       set_pos(integer(Arity), Pos)));
 	{'fun', _Pos, {function, Module, Atom, Arity}} ->
-	    %% New in R15: fun M:F/A.
 	    %% XXX: Perhaps set position for this as well?
 	    module_qualifier(Module, arity_qualifier(Atom, Arity));
 	Node1 ->
diff --git a/lib/tools/src/xref_reader.erl b/lib/tools/src/xref_reader.erl
index d28bdb78db..c145b98972 100644
--- a/lib/tools/src/xref_reader.erl
+++ b/lib/tools/src/xref_reader.erl
@@ -171,15 +171,6 @@ expr({'try',_Line,Es,Scs,Ccs,As}, S) ->
     S2 = clauses(Scs, S1),
     S3 = clauses(Ccs, S2),
     expr(As, S3);
-expr({'fun', Line, {function,M,F,A}}, S)
-  when is_atom(M), is_atom(F), is_integer(A) ->
-    %% This is the old format for external funs, generated by a pre-R15
-    %% compiler. Exposed in OTP 20 because sys_pre_expand is no longer
-    %% run.
-    Fun = {'fun', Line, {function, {atom,Line,M},
-			 {atom,Line,F},
-			 {integer,Line,A}}},
-    expr(Fun, S);
 expr({'fun', Line, {function, {atom,_,Mod},
 		    {atom,_,Name},
 		    {integer,_,Arity}}}, S) ->
diff --git a/lib/tools/test/xref_SUITE.erl b/lib/tools/test/xref_SUITE.erl
index d258966bc2..4ed8130dc0 100644
--- a/lib/tools/test/xref_SUITE.erl
+++ b/lib/tools/test/xref_SUITE.erl
@@ -45,7 +45,7 @@
 
 -export([add/1, default/1, info/1, lib/1, read/1, read2/1, remove/1,
          replace/1, update/1, deprecated/1, trycatch/1,
-         fun_mfa/1, fun_mfa_r14/1,
+         fun_mfa/1,
          fun_mfa_vars/1, qlc/1]).
 
 -export([analyze/1, basic/1, md/1, q/1, variables/1, unused_locals/1,
@@ -81,7 +81,7 @@ groups() ->
      {files, [],
       [add, default, info, lib, read, read2, remove, replace,
        update, deprecated, trycatch, fun_mfa,
-       fun_mfa_r14, fun_mfa_vars, qlc]},
+       fun_mfa_vars, qlc]},
      {analyses, [],
 
       [analyze, basic, md, q, variables, unused_locals, behaviour]},
@@ -1677,28 +1677,6 @@ fun_mfa(Conf) when is_list(Conf) ->
     ok = file:delete(Beam),
     ok.
 
-%% Same as the previous test case, except that we use a BEAM file
-%% that was compiled by an R14 compiler to test backward compatibility.
-fun_mfa_r14(Conf) when is_list(Conf) ->
-    Dir = proplists:get_value(data_dir, Conf),
-    MFile = fname(Dir, "fun_mfa_r14"),
-
-    A = fun_mfa_r14,
-    {ok, _} = xref:start(s),
-    {ok, A} = xref:add_module(s, MFile, {warnings,false}),
-    {ok, [{{{A,t,0},{'$M_EXPR','$F_EXPR',0}},[7]},
-          {{{A,t,0},{A,t,0}},[6]},
-          {{{A,t1,0},{'$M_EXPR','$F_EXPR',0}},[11]},
-          {{{A,t1,0},{A,t,0}},[10]},
-          {{{A,t2,0},{A,t,0}},[14]},
-          {{{A,t3,0},{A,t3,0}},[17]}]} =
-    xref:q(s, "(Lin) E"),
-
-    ok = check_state(s),
-    xref:stop(s),
-
-    ok.
-
 %% fun M:F/A with variables.
 fun_mfa_vars(Conf) when is_list(Conf) ->
     Dir = ?copydir,
diff --git a/lib/tools/test/xref_SUITE_data/fun_mfa_r14.beam b/lib/tools/test/xref_SUITE_data/fun_mfa_r14.beam
deleted file mode 100644
index 46455256904b541073bc78cc724f989072d8f37b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1116
zcmZ?s4>Dw6U<q+@b@X*C$<JkAU<d(XF7C9_y!hO-#P}jZ6UGv@)S{fkymXG-#O%~~
zpbS%qAybJFQ;9KmZhlH>PHKE+URpkXdTL2L5}!x6#8BTr7pPp<K-W1xB^7Ay6d)D=
zVh~6NVtycIXB1!(Qet3K;9+2JP!e`vRCW+zW;bB)W)NZ!W;9?D3SwY%0LrC9MFN<F
zk{B2hu&OR#5-MU~Y+z$(Wt_ky)WpEJ0BDw<fB@qLAWwktfCIBINI*e>@dA_3A_m3>
zYz(T*!6ii?KQnmd7Jz6CAZCVQ79=(&kj)6?gV;>26=3x~KsFl?a{w_&9_TPI8%Qy5
z0Wmv>0R$j<kU9_m(X3z=Fz|si6O_&5R+<NLgA5RZ%mV2L0X_%?bXev_0iXP2kQz`p
zqNs5!DJcSqX*B16WHOji7?{h7^T3=u0S3Vyxs0Fx7{c^a5-e}%%*e{ha`wzi11huu
zt7ieJXU{Jv$;{6y2I*l28<1R{lFeYPpOcbVoUNafm0y&npI=g-pOcxSUy`4nQ><T-
zT3n)EQIwh%9~|l#;u@clSdyrZlz2d<u;rJQq+}LRW>5+PS4wJ9X*xKqWr1B=mReK{
zbZ#~StBIbuo+(I-r6e;qHG?e)80@zbxe}!lc@s?%CBTj-&Mz%WPR(ZUrocDIKGOqc
ziY&*Z;u2sO3N{A-BXL5-oYsl8Ma>EVN5%IGJyz+xT&<FP%lM1bIk$od32y{^s{c5d
zge*1w%N=oV-}mOHjIH9W@v8IkqY{^%u2y7BIIGO1nYDIS@p?%iuE4t<$C|mHv?t$<
zKfUc(km!5%Whz4P^R~#oRb4#6_Xu}nM#`Jtn}ctqx!pM+(3^1GLHzvLmpdz+1#FgW
zFzcI|w@dq&bMsrZZ)z)5zL~de6xb$qW6uuP*g~Hjp4{(O7#RA>_fP(4_%-8^#c|of
z9)(o_UNM&aQ@;u%HBRokBj^9>bIzRWX~#aV@UM8rGV}GRe=0Zn<ev%Vurqzi-da3y
rcm4hYr*HOu{!sKS&hK5(r=yqKI;FCW?@lN+-Pa{AEw}y~Fa-esrN%q-

diff --git a/lib/tools/test/xref_SUITE_data/fun_mfa_r14.erl b/lib/tools/test/xref_SUITE_data/fun_mfa_r14.erl
deleted file mode 100644
index 293bd83a8b..0000000000
--- a/lib/tools/test/xref_SUITE_data/fun_mfa_r14.erl
+++ /dev/null
@@ -1,18 +0,0 @@
--module(fun_mfa_r14).
-
--export([t/0, t1/0, t2/0, t3/0]).
-
-t() ->
-    F = fun ?MODULE:t/0,
-    (F)().
-
-t1() ->
-    F = fun t/0,
-    (F)().
-
-t2() ->
-    fun ?MODULE:t/0().
-
-t3() ->
-    fun t3/0().
-             
-- 
2.26.2

openSUSE Build Service is sponsored by