File 2302-sys_pre_attributes-Remove-unnecessary-flexibility.patch of Package erlang

From 1672b3cc2ccab5057cb09e3d234557d1133e0fad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Thu, 15 Dec 2016 08:20:22 +0100
Subject: [PATCH 02/21] sys_pre_attributes: Remove unnecessary flexibility

The compiler passes always Options as list to parse_transform/2.
There is no need accept a non-list.

There is also no need to handle an improper Options list. The compiler
itself will crash if the Options list is improper.
---
 lib/compiler/src/sys_pre_attributes.erl | 26 ++------------------------
 1 file changed, 2 insertions(+), 24 deletions(-)

diff --git a/lib/compiler/src/sys_pre_attributes.erl b/lib/compiler/src/sys_pre_attributes.erl
index bc93c8598..57937d48a 100644
--- a/lib/compiler/src/sys_pre_attributes.erl
+++ b/lib/compiler/src/sys_pre_attributes.erl
@@ -61,7 +61,7 @@
 
 parse_transform(Forms, Options) ->
     S = #state{forms = Forms, options = Options},
-    S2 = init_transform(S),
+    S2 = init_transform(Options, S),
     report_verbose("Pre  options: ~p~n", [S2#state.pre_ops], S2),
     report_verbose("Post options: ~p~n", [S2#state.post_ops], S2),
     S3 = pre_transform(S2),
@@ -71,13 +71,6 @@ parse_transform(Forms, Options) ->
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Computes the lists of pre_ops and post_ops that are 
 %% used in the real transformation.
-init_transform(S) ->
-    case S#state.options of
-	Options when is_list(Options) ->
-	    init_transform(Options, S);
-	Option ->
-	    init_transform([Option], S)
-    end.
 
 init_transform([{attribute, insert, Name, Val} | Tail], S) ->
     Op = {insert, Name, Val},
@@ -92,12 +85,9 @@ init_transform([{attribute, delete, Name} | Tail], S) ->
     Op = {delete, Name},
     PreOps = [Op | S#state.pre_ops],
     init_transform(Tail, S#state{pre_ops = PreOps});
-init_transform([], S) ->
-    S;
 init_transform([_ | T], S) ->
     init_transform(T, S);
-init_transform(BadOpt, S) ->
-    report_error("Illegal option (ignored): ~p~n", [BadOpt], S),
+init_transform([], S) ->
     S.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -176,18 +166,9 @@ attrs([], _, _) ->
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Report functions.
 %%
-%% Errors messages are controlled with the 'report_errors' compiler option
 %% Warning messages are controlled with the 'report_warnings' compiler option
 %% Verbose messages are controlled with the 'verbose' compiler option
 
-report_error(Format, Args, S) -> 
-    case is_error(S) of
-	true ->
-	    io:format("~p: * ERROR * " ++ Format, [?MODULE | Args]);
-	false ->
-	    ok
-    end.
-    
 report_warning(Format, Args, S) -> 
     case is_warning(S) of
 	true ->
@@ -204,9 +185,6 @@ report_verbose(Format, Args, S) ->
 	    ok
     end.
 
-is_error(S) ->
-    lists:member(report_errors, S#state.options) or is_verbose(S).
-
 is_warning(S) ->
     lists:member(report_warnings, S#state.options) or is_verbose(S).
 
-- 
2.11.0

openSUSE Build Service is sponsored by