fixes #24941; missing < (less than), cmp for cstring (#24942)

fixes #24941

now `cmp` can select the correct version of cstring comparsions

(cherry picked from commit 42a4adb4a5)
This commit is contained in:
ringabout
2025-05-10 14:26:21 +08:00
committed by narimiran
parent d89fd45b9e
commit ee916f051b
4 changed files with 86 additions and 3 deletions

View File

@@ -198,3 +198,43 @@ block: # bug #6549
doAssert $v == "18446744073709551615"
doAssert $float32(v) == "1.8446744e+19"
doAssert $float64(v) == "1.8446744073709552e+19"
proc bar2() =
var a = cstring"1233"
var b = cstring"1233"
if a == b: doAssert not(a<b)
doAssert not (a != b)
doAssert a <= b
doAssert not (a > b)
doAssert a >= b
doAssert not (a < b)
var c = cstring"a1345"
var d = cstring"hwr"
doAssert c < d
doAssert c <= d
doAssert not (c > d)
doAssert not (c > d)
doAssert c != d
doAssert not (c == d)
when not defined(js):
doAssert cstring(nil) < cstring""
doAssert cstring(nil) <= cstring""
doAssert not (cstring"" < cstring(nil))
doAssert not (cstring"" <= cstring(nil))
doAssert not (cstring(nil) > cstring"")
doAssert not (cstring(nil) >= cstring"")
doAssert cstring"" > cstring(nil)
doAssert cstring"" >= cstring(nil)
doAssert not (cstring"" == cstring(nil))
doAssert cstring(nil) != cstring""
doAssert cstring(nil) == cstring(nil)
doAssert cstring(nil) >= cstring(nil)
doAssert cstring("") >= cstring("")
doAssert cstring(nil) <= cstring(nil)
doAssert cstring("") <= cstring("")
static: bar2()
bar2()