aboutsummaryrefslogtreecommitdiff
path: root/lib/compatibility/4.11.nom
diff options
context:
space:
mode:
Diffstat (limited to 'lib/compatibility/4.11.nom')
-rw-r--r--lib/compatibility/4.11.nom97
1 files changed, 97 insertions, 0 deletions
diff --git a/lib/compatibility/4.11.nom b/lib/compatibility/4.11.nom
new file mode 100644
index 0000000..24dbbdc
--- /dev/null
+++ b/lib/compatibility/4.11.nom
@@ -0,0 +1,97 @@
+#!/usr/bin/env nomsu -V6.14
+#
+ This file defines upgrades from Nomsu <4.11 to Nomsu 4.11
+ (overhaul of function literals, deleting (if all of ...), etc. shorthand)
+
+use "compatibility/compatibility"
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+# Overhaul of function literals:
+upgrade action "call 1 with" to "4.11" via
+ for ($tree $end_version):
+ $tree2 = {.type = "Action", .source = $tree.source, .1 = $tree.2}
+ for $arg in $tree.4 at $i:
+ $tree2.($i + 1) = $arg
+ return (SyntaxTree $tree2)
+upgrade action (-> $yield_value) to "4.11" as (yield $yield_value)
+
+# Replace set {$x:1, $y:2} with [$x, $y] = [1, 2]
+upgrade action "set" to "4.11" via
+ for ($tree $end_version):
+ [$lhs, $rhs] = [\[], \[]]
+ $lhs.source = $tree.2.source
+ $rhs.source = $tree.2.source
+ for $entry in $tree.2 at $i:
+ $lhs.$i = $entry.1
+ $rhs.$i = $entry.2
+
+ return
+ SyntaxTree {.type = "Action", .source = $tree.source} $lhs "=" $rhs
+
+upgrade action "1 with 2 ~>" to "4.11" via
+ for $tree:
+ compile error at $tree "This method has been deprecated."
+ "Perhaps this could be use ($tree, map ...) instead."
+
+# Changing filesystem API:
+upgrade action (for file $f in $path $body) to "4.11" as
+ for $f in (files for $path) $body
+
+upgrade action ($expr for file $f in $path) to "4.11" as
+ [: for $f in (files for $path): add $expr]
+
+upgrade action (line $n in $text) to "4.11" as ($text, line $n)
+upgrade action (line number of $pos in $text) to "4.11" as
+ $text, line number at $pos
+
+# Deduplicating goto labels:
+upgrade action [=== $label ===, *** $label ***] to "4.11" as (--- $label ---)
+upgrade action [===stop $label ===, ***stop $label ***] to "4.11" as
+ ---stop $label ---
+
+upgrade action [===next $label ===, ***next $label ***] to "4.11" as
+ ---next $label ---
+
+# Deprecating shorthand functions:
+upgrade action [if all of $items $body, if all of $items then $body] to "4.11" as
+ if (all of $items) $body
+
+upgrade action [unless all of $items $body, unless all of $items then $body] to
+.."4.11" as (if (not (all of $items)) $body)
+
+upgrade action [if any of $items $body, if any of $items then $body] to "4.11" as
+ if (any of $items) $body
+
+upgrade action [unless any of $items $body, unless any of $items then $body] to
+.."4.11" as (if (not (any of $items)) $body)
+
+upgrade action [if none of $items $body, if none of $items then $body] to "4.11"
+..as (if (not (any of $items)) $body)
+
+upgrade action [unless none of $items $body, unless none of $items then $body] to
+.."4.11" as (if (any of $items) $body)
+
+upgrade action [
+ if all of $items $body else $else, if all of $items then $body else $else
+] to "4.11" as (if (all of $items) $body else $else)
+
+upgrade action [
+ unless all of $items $body else $else, unless all of $items then $body else $else
+] to "4.11" as (if (not (all of $items)) $body else $else)
+
+upgrade action [
+ if any of $items $body else $else, if any of $items then $body else $else
+] to "4.11" as (if (any of $items) $body else $else)
+
+upgrade action [
+ unless any of $items $body else $else, unless any of $items then $body else $else
+] to "4.11" as (if (not (any of $items)) $body else $else)
+
+upgrade action [
+ if none of $items $body else $else, if none of $items then $body else $else
+] to "4.11" as (if (not (any of $items)) $body else $else)
+
+upgrade action [
+ unless none of $items $body else $else, unless none of $items then $body else $else
+] to "4.11" as (if (any of $items) $body else $else)