File 2318-beam_listing-Add-types-and-specs.patch of Package erlang

From cd2734811a5fe7c891db1063484489a81c6a92b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Thu, 15 Dec 2016 09:22:28 +0100
Subject: [PATCH 18/21] beam_listing: Add types and specs

---
 lib/compiler/src/beam_listing.erl | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/compiler/src/beam_listing.erl b/lib/compiler/src/beam_listing.erl
index d82ed8639..94b47cf56 100644
--- a/lib/compiler/src/beam_listing.erl
+++ b/lib/compiler/src/beam_listing.erl
@@ -21,14 +21,24 @@
 
 -export([module/2]).
 
+-include("core_parse.hrl").
+-include("v3_kernel.hrl").
 -include("v3_life.hrl").
 
 -import(lists, [foreach/2]).
 
-module(File, Core) when element(1, Core) == c_module ->
+-type code() :: cerl:c_module()
+              | beam_utils:module_code()
+              | #k_mdef{}
+              | {module(),_,_,_}                %v3_life
+              | [_].                            %form-based format
+
+-spec module(file:io_device(), code()) -> 'ok'.
+
+module(File, #c_module{}=Core) ->
     %% This is a core module.
     io:put_chars(File, core_pp:format(Core));
-module(File, Kern) when element(1, Kern) == k_mdef ->
+module(File, #k_mdef{}=Kern) ->
     %% This is a kernel module.
     io:put_chars(File, v3_kernel_pp:format(Kern));
     %%io:put_chars(File, io_lib:format("~p~n", [Kern]));
-- 
2.11.0

openSUSE Build Service is sponsored by