File otp_src_19.2-lib-compiler-add-spec.patch of Package erlang
diff -Ndurp otp_src_19.2/lib/compiler/src/beam_bool.erl otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_bool.erl
--- otp_src_19.2/lib/compiler/src/beam_bool.erl 2016-12-09 12:45:24.000000000 +0200
+++ otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_bool.erl 2017-01-15 03:17:11.782967330 +0200
@@ -30,6 +30,7 @@
ll %Live regs at labels.
}).
+-spec module(beam_utils:module_code(), [compile:option()]) -> {'ok', beam_utils:module_code()}.
module({Mod,Exp,Attr,Fs0,Lc}, _Opts) ->
%%io:format("~p:\n", [Mod]),
{Fs,_} = mapfoldl(fun(Fn, Lbl) -> function(Fn, Lbl) end, 100000000, Fs0),
diff -Ndurp otp_src_19.2/lib/compiler/src/beam_jump.erl otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_jump.erl
--- otp_src_19.2/lib/compiler/src/beam_jump.erl 2016-12-09 12:45:24.000000000 +0200
+++ otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_jump.erl 2017-01-15 03:45:17.701005467 +0200
@@ -482,6 +482,7 @@ is_exit_instruction(_) -> false.
%% Check whether the label is used in the instruction sequence
%% (including inside blocks).
+-spec is_label_used_in(beam_asm:label(), instruction()) -> boolean().
is_label_used_in(Lbl, Is) ->
is_label_used_in_1(Is, Lbl, cerl_sets:new()).
diff -Ndurp otp_src_19.2/lib/compiler/src/beam_utils.erl otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_utils.erl
--- otp_src_19.2/lib/compiler/src/beam_utils.erl 2016-12-09 12:45:24.000000000 +0200
+++ otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/beam_utils.erl 2017-01-15 04:22:13.754442134 +0200
@@ -100,6 +100,7 @@ is_not_used(R, Is, D) ->
%% The state is used to allow us to determine the usage state
%% across branches.
+-spec is_not_used_at(beam_asm:reg(), beam_asm:label(), code_index()) -> boolean().
is_not_used_at(R, Lbl, D) ->
St = #live{bl=fun check_used_block/3,lbl=D,res=gb_trees:empty()},
case check_liveness_at(R, Lbl, St) of
diff -Ndurp otp_src_19.2/lib/compiler/src/sys_pre_expand.erl otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/sys_pre_expand.erl
--- otp_src_19.2/lib/compiler/src/sys_pre_expand.erl 2016-12-09 12:45:24.000000000 +0200
+++ otp_src_19.2-lib-compiler-add-spec/lib/compiler/src/sys_pre_expand.erl 2017-01-15 04:40:28.543536254 +0200
@@ -51,6 +51,7 @@
%%
%% CompileOptions is augmented with options from -compile attributes.
+-spec module([erl_parse:abstract_form()], [compile:option()]) -> {module(), list(), list(), [compile:option()]}.
module(Fs0, Opts0) ->
%% Expand records. Normalise guard tests.