Skip to content

Commit 31edd0a

Browse files
authored
adds < operator for pointers (#1198)
`<` for pointers is used in src/lib/nifreader.nim.
1 parent e7dc99d commit 31edd0a

File tree

5 files changed

+31
-29
lines changed

5 files changed

+31
-29
lines changed

lib/std/system/comparisons.nim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ proc `<`*[T](x, y: set[T]): bool {.magic: "LtSet", noSideEffect.}
6161
## A strict or proper subset `x` has all of its members in `y` but `y` has
6262
## more elements than `y`.
6363

64+
proc `<`*(x, y: pointer): bool {.magic: "LtPtr", noSideEffect.}
65+
6466
proc `==`*(x, y: int8): bool {.magic: "EqI", noSideEffect.}
6567
proc `==`*(x, y: int16): bool {.magic: "EqI", noSideEffect.}
6668
proc `==`*(x, y: int32): bool {.magic: "EqI", noSideEffect.}
Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
tests/nimony/errmsgs/tdistinctinfos.nim(4, 20) Trace: instantiation from here
2-
lib/std/system/comparisons.nim(105, 3) Error: Type mismatch at [position]
2+
lib/std/system/comparisons.nim(107, 3) Error: Type mismatch at [position]
33
WINBOOL(0) == 0
44
[2] BUG: unhandled type: distinct (declared in lib/std/system/comparisons.nim(4, 1))
55
[1] WINBOOL does not match constraint Enum (declared in lib/std/system/comparisons.nim(7, 1))
@@ -10,15 +10,15 @@ WINBOOL(0) == 0
1010
[1] expected: set[T] but got: WINBOOL (declared in lib/std/system/comparisons.nim(18, 1))
1111
[1] expected: ref T but got: WINBOOL (declared in lib/std/system/comparisons.nim(21, 1))
1212
[1] expected: ptr T but got: WINBOOL (declared in lib/std/system/comparisons.nim(23, 1))
13-
[1] expected: int8 but got: WINBOOL (declared in lib/std/system/comparisons.nim(64, 1))
14-
[1] expected: int16 but got: WINBOOL (declared in lib/std/system/comparisons.nim(65, 1))
15-
[1] expected: int32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(66, 1))
16-
[1] expected: int64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(67, 1))
17-
[1] expected: uint8 but got: WINBOOL (declared in lib/std/system/comparisons.nim(89, 1))
18-
[1] expected: uint16 but got: WINBOOL (declared in lib/std/system/comparisons.nim(90, 1))
19-
[1] expected: uint32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(91, 1))
20-
[1] expected: uint64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(92, 1))
21-
[1] expected: float32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(100, 1))
22-
[1] expected: float64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(101, 1))
13+
[1] expected: int8 but got: WINBOOL (declared in lib/std/system/comparisons.nim(66, 1))
14+
[1] expected: int16 but got: WINBOOL (declared in lib/std/system/comparisons.nim(67, 1))
15+
[1] expected: int32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(68, 1))
16+
[1] expected: int64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(69, 1))
17+
[1] expected: uint8 but got: WINBOOL (declared in lib/std/system/comparisons.nim(91, 1))
18+
[1] expected: uint16 but got: WINBOOL (declared in lib/std/system/comparisons.nim(92, 1))
19+
[1] expected: uint32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(93, 1))
20+
[1] expected: uint64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(94, 1))
21+
[1] expected: float32 but got: WINBOOL (declared in lib/std/system/comparisons.nim(102, 1))
22+
[1] expected: float64 but got: WINBOOL (declared in lib/std/system/comparisons.nim(103, 1))
2323
[1] expected: string but got: WINBOOL (declared in lib/std/system/stringimpl.nim(250, 1))
2424
[1] expected: openArray[T] but got: WINBOOL (declared in lib/std/system/openarrays.nim(47, 1))

tests/nimony/iter/tforloops1.nif

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
(hconv 11,~16
7676
(cstring) "countup start\3A %ld\0A") 25 m.1) ,2
7777
(if 3
78-
(elif 2,112,lib/std/system/comparisons.nim
78+
(elif 2,114,lib/std/system/comparisons.nim
7979
(expr 2,1
8080
(lt
8181
(i +64) 9,28,tests/nimony/iter/tforloops1.nim +5 5,28,tests/nimony/iter/tforloops1.nim x.1)) ~1,1
@@ -765,7 +765,7 @@
765765
(pragmas 2
766766
(inline) 10
767767
(requires 19
768-
(and 2,108,lib/std/system/comparisons.nim
768+
(and 2,110,lib/std/system/comparisons.nim
769769
(expr 2,1
770770
(le
771771
(i +64) 75,8,lib/std/system/openarrays.nim +0 68,8,lib/std/system/openarrays.nim idx.2)) 8
@@ -807,7 +807,7 @@
807807
(pragmas 2
808808
(inline) 10
809809
(requires 19
810-
(and 2,108,lib/std/system/comparisons.nim
810+
(and 2,110,lib/std/system/comparisons.nim
811811
(expr 2,1
812812
(le
813813
(i +64) 75,8,lib/std/system/openarrays.nim +0 68,8,lib/std/system/openarrays.nim idx.3)) 8

tests/nimony/sysbasics/temptyseq.nif

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
(i -1))) 33
6060
(call ~5 alloc.0.sysvq0asl 1 memSize.0))))) ,2
6161
(if 3
62-
(elif 2,104,lib/std/system/comparisons.nim
62+
(elif 2,106,lib/std/system/comparisons.nim
6363
(expr ,1
6464
(not 7
6565
(eq
@@ -112,7 +112,7 @@
112112
(f +64))) 33
113113
(call ~5 alloc.0.sysvq0asl 1 memSize.1))))) ,2
114114
(if 3
115-
(elif 2,104,lib/std/system/comparisons.nim
115+
(elif 2,106,lib/std/system/comparisons.nim
116116
(expr ,1
117117
(not 7
118118
(eq
@@ -174,7 +174,7 @@
174174
(u +8))) 33
175175
(call ~5 alloc.0.sysvq0asl 1 memSize.2))))) ,2
176176
(if 3
177-
(elif 2,104,lib/std/system/comparisons.nim
177+
(elif 2,106,lib/std/system/comparisons.nim
178178
(expr ,1
179179
(not 7
180180
(eq
@@ -321,7 +321,7 @@
321321
(cmd inc.0.temd2l7vy 4
322322
(haddr i.0)))) ,4
323323
(if 3
324-
(elif 2,104,lib/std/system/comparisons.nim
324+
(elif 2,106,lib/std/system/comparisons.nim
325325
(expr ,1
326326
(not 7
327327
(eq
@@ -523,7 +523,7 @@
523523
(cmd inc.0.temd2l7vy 4
524524
(haddr i.4)))) ,4
525525
(if 3
526-
(elif 2,104,lib/std/system/comparisons.nim
526+
(elif 2,106,lib/std/system/comparisons.nim
527527
(expr ,1
528528
(not 7
529529
(eq
@@ -725,7 +725,7 @@
725725
(cmd inc.0.temd2l7vy 4
726726
(haddr i.8)))) ,4
727727
(if 3
728-
(elif 2,104,lib/std/system/comparisons.nim
728+
(elif 2,106,lib/std/system/comparisons.nim
729729
(expr ,1
730730
(not 7
731731
(eq
@@ -938,7 +938,7 @@
938938
(i -1) .) 7
939939
(asgn ~7 result.9 2
940940
(if 3
941-
(elif 2,104,lib/std/system/comparisons.nim
941+
(elif 2,106,lib/std/system/comparisons.nim
942942
(expr ,1
943943
(not 7
944944
(eq
@@ -970,7 +970,7 @@
970970
(i -1) .) 7
971971
(asgn ~7 result.10 2
972972
(if 3
973-
(elif 2,104,lib/std/system/comparisons.nim
973+
(elif 2,106,lib/std/system/comparisons.nim
974974
(expr ,1
975975
(not 7
976976
(eq
@@ -1002,7 +1002,7 @@
10021002
(i -1) .) 7
10031003
(asgn ~7 result.11 2
10041004
(if 3
1005-
(elif 2,104,lib/std/system/comparisons.nim
1005+
(elif 2,106,lib/std/system/comparisons.nim
10061006
(expr ,1
10071007
(not 7
10081008
(eq

tests/nimony/sysbasics/tintlitmatch.nif

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,19 @@
3838
(discard 10
3939
(eq
4040
(i +64) ~2
41-
(hconv 17,67,lib/std/system/comparisons.nim
41+
(hconv 17,69,lib/std/system/comparisons.nim
4242
(i +64) x.0.tin4pj0od1) 3 y.0.tin4pj0od1)) ,14
4343
(discard 10
4444
(eq
4545
(i +64) ~2 y.0.tin4pj0od1 6
46-
(hconv 17,67,lib/std/system/comparisons.nim
46+
(hconv 17,69,lib/std/system/comparisons.nim
4747
(i +64)
4848
(conv 1
4949
(i +32) ~3 +123)))) ,15
5050
(discard 18
5151
(eq
5252
(i +64) ~7
53-
(hconv 17,67,lib/std/system/comparisons.nim
53+
(hconv 17,69,lib/std/system/comparisons.nim
5454
(i +64)
5555
(conv 6,~1
5656
(i +32) ~3 +123)) 3 y.0.tin4pj0od1)) ,16
@@ -73,17 +73,17 @@
7373
(i +32) ~7
7474
(conv 6,~6
7575
(i +32) ~3 +123) 3
76-
(hconv 17,66,lib/std/system/comparisons.nim
76+
(hconv 17,68,lib/std/system/comparisons.nim
7777
(i +32) +123))) ,21
7878
(discard 12
7979
(eq
8080
(i +32) ~4
81-
(hconv 17,66,lib/std/system/comparisons.nim
81+
(hconv 17,68,lib/std/system/comparisons.nim
8282
(i +32) +123) 6
8383
(conv ~1,~7
8484
(i +32) ~3 +123))) ,22
8585
(discard 10
8686
(eq
8787
(i +32) ~2 x.0.tin4pj0od1 3
88-
(hconv 17,66,lib/std/system/comparisons.nim
88+
(hconv 17,68,lib/std/system/comparisons.nim
8989
(i +32) +123))))

0 commit comments

Comments
 (0)