aboutsummaryrefslogtreecommitdiff
path: root/spec/scope.md
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-11-29 20:55:22 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-11-29 20:55:22 -0500
commitfb3580660898306105c2e1f041f29bbdb9006210 (patch)
treeb704efe38eb38c0ebfdc3c7cbb8a37eba52be953 /spec/scope.md
parenta7148422c8f4a69134263b4d37d05499996aaa7c (diff)
Remove return (→) from the spec
Diffstat (limited to 'spec/scope.md')
-rw-r--r--spec/scope.md4
1 files changed, 0 insertions, 4 deletions
diff --git a/spec/scope.md b/spec/scope.md
index 26b924c8..893348fb 100644
--- a/spec/scope.md
+++ b/spec/scope.md
@@ -43,7 +43,3 @@ When a body in a block is evaluated, it creates a *namespace*, which contains a
The first access to a variable must be made by its definition (this also means it sets the variable). If a different instance of its identifier accesses it first, then an error results. This can happen because every scope contained in a particular scope sees all the definitions it uses, and such a scope could be called before the definition is run. Because of conditional execution, this property must be checked at run time in general; however, in cases where it is possible to statically determine that a program will always violate it, a BQN instance can give an error at compile time rather than run time.
A namespace defines a mapping from names to variables: if the given name is shared by an exported identifier in the body used to create that namespace, then that name maps to the variable corresponding to that identifier. The mapping is undefined for other names.
-
-## Returns
-
-The name `NAME | "𝕊" | "𝕣"` in a `Return` node is resolved exactly like any other identifier. Following resolution, the block that defines the identifier must not be a namespace block (export variables or contain an `EXPORT` statement). Furthermore, if it is a `NAME`, then its definition must be an internal name for a containing block: `s` in `brSub`, `F` in `FuncHead` or `FMain`, `_m` in `Mod1H1` or `_mMain`, or `_c_` in `Mod2H1` or `_cMain_`. When reached, the `Return` node's identifier is not accessed; instead, it is used to indicate the namespace that contains it, and through this the block evaluation that created that namespace.