File 0331-erlang-module-doc-raise-3.patch of Package erlang
From 3dff5bf524f2482b9985fe50a6b89030e3877da3 Mon Sep 17 00:00:00 2001
From: Kjell Winblad <kjellwinblad@gmail.com>
Date: Wed, 23 Sep 2020 09:37:45 +0200
Subject: [PATCH 31/39] erlang module doc: raise/3
* Fix type spec
* raise/3 does not stop execution it raises exception
---
erts/doc/src/erlang.xml | 14 +++++++++-----
erts/preloaded/src/erlang.erl | 2 +-
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index a935130658..e5fedec2bb 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -6061,18 +6061,18 @@ RealSystem = system + MissedSystem</code>
<func>
<name name="raise" arity="3" since=""/>
- <fsummary>Stop execution with an exception of specified class, reason,
+ <fsummary>Raises exception of specified class, reason,
and call stack backtrace.</fsummary>
<type name="raise_stacktrace"/>
<desc>
- <p>Stops the execution of the calling process with an
- exception of the specified class, reason, and call stack backtrace
+ <p>Raises exception of the specified class, reason, and call stack backtrace
(<em>stacktrace</em>).</p>
<p><c><anno>Class</anno></c> is <c>error</c>, <c>exit</c>, or
- <c>throw</c>. So, if it were not for the stacktrace,
+ <c>throw</c>. So, if it were not for the stacktrace,
<c>erlang:raise(<anno>Class</anno>, <anno>Reason</anno>,
<anno>Stacktrace</anno>)</c> is equivalent to
- <c>erlang:<anno>Class</anno>(<anno>Reason</anno>)</c>.</p>
+ <c>erlang:<anno>Class</anno>(<anno>Reason</anno>)</c> (given that <c><anno>Class</anno></c>
+ is a valid class).</p>
<p><c><anno>Reason</anno></c> can be any term.</p>
<p><c><anno>Stacktrace</anno></c> is a list as provided in a try-catch
clause.</p>
@@ -6102,6 +6102,10 @@ end</pre>
<c>error(erlang:raise(<anno>Class</anno>, <anno>Reason</anno>,
<anno>Stacktrace</anno>))</c>
and hope to distinguish exceptions later.</p>
+ <p>See the reference manual about <seeguide
+ marker="system/reference_manual:errors">errors and error
+ handling</seeguide> for more information about exception
+ classes and how to catch exceptions.</p>
</desc>
</func>
diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl
index 60caad2b1e..6c2ff97312 100644
--- a/erts/preloaded/src/erlang.erl
+++ b/erts/preloaded/src/erlang.erl
@@ -1654,7 +1654,7 @@ put(_Key, _Val) ->
erlang:nif_error(undefined).
%% raise/3
--spec erlang:raise(Class, Reason, Stacktrace) -> no_return() when
+-spec erlang:raise(Class, Reason, Stacktrace) -> badarg when
Class :: error | exit | throw,
Reason :: term(),
Stacktrace :: raise_stacktrace().
--
2.26.2