aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/tool/compiler/phase/analysis/case
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/tool/compiler/phase/analysis/case.lux16
-rw-r--r--stdlib/source/lux/tool/compiler/phase/analysis/case/coverage.lux14
2 files changed, 16 insertions, 14 deletions
diff --git a/stdlib/source/lux/tool/compiler/phase/analysis/case.lux b/stdlib/source/lux/tool/compiler/phase/analysis/case.lux
index dd45ab734..c69abb4df 100644
--- a/stdlib/source/lux/tool/compiler/phase/analysis/case.lux
+++ b/stdlib/source/lux/tool/compiler/phase/analysis/case.lux
@@ -8,6 +8,8 @@
[data
["." product]
["." maybe]
+ [number
+ ["n" nat]]
[text
["%" format (#+ format)]]
[collection
@@ -187,15 +189,15 @@
num-subs (maybe.default (list.size subs)
num-tags)
num-sub-patterns (list.size sub-patterns)
- matches (cond (n/< num-subs num-sub-patterns)
+ matches (cond (n.< num-subs num-sub-patterns)
(let [[prefix suffix] (list.split (dec num-sub-patterns) subs)]
(list.zip2 (list@compose prefix (list (type.tuple suffix))) sub-patterns))
- (n/> num-subs num-sub-patterns)
+ (n.> num-subs num-sub-patterns)
(let [[prefix suffix] (list.split (dec num-subs) sub-patterns)]
(list.zip2 subs (list@compose prefix (list (code.tuple suffix)))))
- ## (n/= num-subs num-sub-patterns)
+ ## (n.= num-subs num-sub-patterns)
(list.zip2 subs sub-patterns))]
(do @
[[memberP+ thenA] (list@fold (: (All [a]
@@ -246,16 +248,16 @@
num-cases (maybe.default size-sum num-tags)]
(.case (list.nth idx flat-sum)
(^multi (#.Some caseT)
- (n/< num-cases idx))
+ (n.< num-cases idx))
(do ///.monad
- [[testP nextA] (if (and (n/> num-cases size-sum)
- (n/= (dec num-cases) idx))
+ [[testP nextA] (if (and (n.> num-cases size-sum)
+ (n.= (dec num-cases) idx))
(analyse-pattern #.None
(type.variant (list.drop (dec num-cases) flat-sum))
(` [(~+ values)])
next)
(analyse-pattern #.None caseT (` [(~+ values)]) next))
- #let [right? (n/= (dec num-cases) idx)
+ #let [right? (n.= (dec num-cases) idx)
lefts (if right?
(dec idx)
idx)]]
diff --git a/stdlib/source/lux/tool/compiler/phase/analysis/case/coverage.lux b/stdlib/source/lux/tool/compiler/phase/analysis/case/coverage.lux
index af43a0e53..f81fa19fd 100644
--- a/stdlib/source/lux/tool/compiler/phase/analysis/case/coverage.lux
+++ b/stdlib/source/lux/tool/compiler/phase/analysis/case/coverage.lux
@@ -10,7 +10,7 @@
["." bit ("#@." equivalence)]
["." maybe]
[number
- ["." nat]]
+ ["n" nat]]
["." text
["%" format (#+ Format format)]]
[collection
@@ -29,7 +29,7 @@
(def: known-cases?
(-> Nat Bit)
- (n/> 0))
+ (n.> 0))
## The coverage of a pattern-matching expression summarizes how well
## all the possible values of an input are being covered by the
@@ -147,7 +147,7 @@
(wrap (#Variant (if right?
(#.Some idx)
#.None)
- (|> (dictionary.new nat.hash)
+ (|> (dictionary.new n.hash)
(dictionary.put idx value-coverage)))))))
(def: (xor left right)
@@ -184,7 +184,7 @@
(bit@= sideR sideS)
[(#Variant allR casesR) (#Variant allS casesS)]
- (and (n/= (cases allR)
+ (and (n.= (cases allR)
(cases allS))
(:: (dictionary.equivalence =) = casesR casesS))
@@ -195,7 +195,7 @@
[(#Alt _) (#Alt _)]
(let [flatR (flatten-alt reference)
flatS (flatten-alt sample)]
- (and (n/= (list.size flatR) (list.size flatS))
+ (and (n.= (list.size flatR) (list.size flatS))
(list.every? (function (_ [coverageR coverageS])
(= coverageR coverageS))
(list.zip2 flatR flatS))))
@@ -229,7 +229,7 @@
so-far-cases (cases allA)]
(cond (and (known-cases? addition-cases)
(known-cases? so-far-cases)
- (not (n/= addition-cases so-far-cases)))
+ (not (n.= addition-cases so-far-cases)))
(ex.throw variants-do-not-match [addition-cases so-far-cases])
(:: (dictionary.equivalence ..equivalence) = casesSF casesA)
@@ -250,7 +250,7 @@
casesSF (dictionary.entries casesA))]
(wrap (if (and (or (known-cases? addition-cases)
(known-cases? so-far-cases))
- (n/= (inc (n/max addition-cases so-far-cases))
+ (n.= (inc (n.max addition-cases so-far-cases))
(dictionary.size casesM))
(list.every? exhaustive? (dictionary.values casesM)))
#Exhaustive