File 0281-Document-the-scoping-rules-for-try-catch-of-after-ex.patch of Package erlang
From ce6d9a8377ba80f4635df09c0110a39cceddd995 Mon Sep 17 00:00:00 2001
From: Robin Morisset <rmorisset@fb.com>
Date: Wed, 5 Apr 2023 09:06:27 -0700
Subject: [PATCH] Document the scoping rules for try/catch/of/after expressions
Fixes #6598.
---
system/doc/reference_manual/expressions.xml | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/system/doc/reference_manual/expressions.xml b/system/doc/reference_manual/expressions.xml
index 34e622a67e..6b3ba96b6b 100644
--- a/system/doc/reference_manual/expressions.xml
+++ b/system/doc/reference_manual/expressions.xml
@@ -1938,6 +1938,20 @@ catch
exit:Reason -> {'EXIT',Reason}
error:Reason:Stk -> {'EXIT',{Reason,Stk}}
end</code>
+
+ <p>Variables bound in the various parts of these expressions have different scopes.
+ Variables bound just after the <c>try</c> keyword are:</p>
+ <list type="bulleted">
+ <item>bound in the <c>of</c> section</item>
+ <item>unsafe in both the <c>catch</c> and <c>after</c> sections, as well as after the whole construct</item>
+ </list>
+ <p>Variables bound in <c>of</c> section are:</p>
+ <list type="bulleted">
+ <item>unbound in the <c>catch</c> section</item>
+ <item>unsafe in both the <c>after</c> section, as well as after the whole construct</item>
+ </list>
+ <p>Variables bound in the <c>catch</c> section are unsafe in the <c>after</c> section, as well as after the whole construct.</p>
+ <p>Variables bound in the <c>after</c> section are unsafe after the whole construct.</p>
</section>
<section>
@@ -2426,4 +2440,3 @@ KeyPattern := ValuePattern <- MapExpression</pre>
* 1:7: syntax error before: '<'</pre>
</section>
</chapter>
-
--
2.35.3