mirror of
https://github.com/janet-lang/janet
synced 2024-12-26 08:20:27 +00:00
Fix #1149 - deep-not= should only return true/false.
Also improve perf at same time.
This commit is contained in:
parent
57b751b994
commit
41943746e4
@ -2114,8 +2114,24 @@
|
|||||||
(or
|
(or
|
||||||
(not= tx (type y))
|
(not= tx (type y))
|
||||||
(case tx
|
(case tx
|
||||||
:tuple (or (not= (length x) (length y)) (some identity (map deep-not= x y)))
|
:tuple (or (not= (length x) (length y))
|
||||||
:array (or (not= (length x) (length y)) (some identity (map deep-not= x y)))
|
(do
|
||||||
|
(var ret false)
|
||||||
|
(forv i 0 (length x)
|
||||||
|
(def xx (in x i))
|
||||||
|
(def yy (in y i))
|
||||||
|
(if (deep-not= xx yy)
|
||||||
|
(break (set ret true))))
|
||||||
|
ret))
|
||||||
|
:array (or (not= (length x) (length y))
|
||||||
|
(do
|
||||||
|
(var ret false)
|
||||||
|
(forv i 0 (length x)
|
||||||
|
(def xx (in x i))
|
||||||
|
(def yy (in y i))
|
||||||
|
(if (deep-not= xx yy)
|
||||||
|
(break (set ret true))))
|
||||||
|
ret))
|
||||||
:struct (deep-not= (kvs x) (kvs y))
|
:struct (deep-not= (kvs x) (kvs y))
|
||||||
:table (deep-not= (table/to-struct x) (table/to-struct y))
|
:table (deep-not= (table/to-struct x) (table/to-struct y))
|
||||||
:buffer (not= (string x) (string y))
|
:buffer (not= (string x) (string y))
|
||||||
|
@ -329,6 +329,8 @@
|
|||||||
(assert (deep= (map + [1 2 3 4] [10 20 30] [100 200]) @[111 222]))
|
(assert (deep= (map + [1 2 3 4] [10 20 30] [100 200]) @[111 222]))
|
||||||
(assert (deep= (map + [1 2 3 4] [10 20 30] [100 200] [1000]) @[1111]))
|
(assert (deep= (map + [1 2 3 4] [10 20 30] [100 200] [1000]) @[1111]))
|
||||||
|
|
||||||
|
(assert (= false (deep-not= [1] [1])) "issue #1149")
|
||||||
|
|
||||||
# Sort function
|
# Sort function
|
||||||
(assert (deep=
|
(assert (deep=
|
||||||
(range 99)
|
(range 99)
|
||||||
|
Loading…
Reference in New Issue
Block a user