Skip to content

Commit c446329

Browse files
authored
fixes #977; DistinctType(0) != 0 causes error message with wrong lineinfo (#1096)
fixes #977 supersedes #1094
1 parent 118232e commit c446329

File tree

6 files changed

+49
-32
lines changed

6 files changed

+49
-32
lines changed

src/lib/nifindexes.nim

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ proc createIndex*(infile: string; root: PackedLineInfo; buildChecksum: bool; sec
231231
else:
232232
previousPrivateTarget = target
233233

234+
if tb.kind == ParLe: stack.add tb.info
235+
234236
public.addParRi()
235237
private.addParRi()
236238
close s
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/nimony/errmsgs/tdistinctinfos.nim(4, 20) Trace: instantiation from here
2+
lib/std/system/comparisons.nim(105, 3) Error: Type mismatch at [position]
3+
[1] expected: (bool) but got: (auto)
4+
[1] expected: (i +8) but got: (auto)
5+
[1] expected: (i +16) but got: (auto)
6+
[1] expected: (i +32) but got: (auto)
7+
[1] expected: (i +64) but got: (auto)
8+
[1] expected: (u +8) but got: (auto)
9+
[1] expected: (u +16) but got: (auto)
10+
[1] expected: (u +32) but got: (auto)
11+
[1] expected: (u +64) but got: (auto)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
type
2+
WINBOOL* = distinct int32
3+
4+
discard WINBOOL(0) != 0

tests/nimony/iter/tforloops1.nif

Lines changed: 22 additions & 22 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,109,lib/std/system.nim
78+
(elif 2,112,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
@@ -265,7 +265,7 @@
265265
(let :j.4 . . 11,~84
266266
(i -1) .)) ~2,1
267267
(stmts 4
268-
(let :a.5 . . 15,44,lib/std/system.nim
268+
(let :a.5 . . 15,44,lib/std/system/arithmetics.nim
269269
(i +64) 6
270270
(add
271271
(i +64) ~2 i.9 2 j.4)) 4,1
@@ -315,7 +315,7 @@
315315
(var :x.3 . . 12,35,lib/std/system/basic_types.nim
316316
(bool) 4
317317
(false)) 2,2
318-
(var :run.0 . . 0,2,lib/std/system.nim
318+
(var :run.0 . . 22,35,lib/std/system/basic_types.nim
319319
(bool) 6
320320
(true)) ,4
321321
(while 6 run.0 2,1
@@ -406,31 +406,31 @@
406406
(call ~5 items.1.tfo161bfb1
407407
(hcall toOpenArray.2.tfo161bfb1
408408
(aconstr
409-
(array 0,2,lib/std/system.nim
409+
(array 22,35,lib/std/system/basic_types.nim
410410
(bool)
411411
(rangetype
412412
(i -1) +0 +1)) 1
413413
(true) 7
414414
(false)))))
415415
(unpackflat
416416
(let :x.7 . . 19,41,lib/std/system/openarrays.nim
417-
(mut 0,2,lib/std/system.nim
417+
(mut 22,35,lib/std/system/basic_types.nim
418418
(bool)) .)) ~2,1
419419
(stmts 4
420420
(for 5
421421
(hderef
422422
(call ~5 items.1.tfo161bfb1
423423
(hcall toOpenArray.2.tfo161bfb1
424424
(aconstr ~2,~1
425-
(array 0,2,lib/std/system.nim
425+
(array 22,35,lib/std/system/basic_types.nim
426426
(bool)
427427
(rangetype
428428
(i -1) +0 +1)) 1
429429
(true) 7
430430
(false)))))
431431
(unpackflat
432432
(let :y.1 . . 19,41,lib/std/system/openarrays.nim
433-
(mut 0,2,lib/std/system.nim
433+
(mut 22,35,lib/std/system/basic_types.nim
434434
(bool)) .)) ~2,1
435435
(stmts 2,116,lib/std/syncio.nim
436436
(stmts 2,1
@@ -444,15 +444,15 @@
444444
(hderef y.1))) ,2
445445
(cmd write.5.syn1lfpjv 6 stdout.0.syn1lfpjv 14 '\0A')))))))) 4,35
446446
(call ~4 main.0))) 4,22
447-
(proc :inc.0.tfo161bfb1 . 0,12,lib/std/system.nim .
447+
(proc :inc.0.tfo161bfb1 . 0,12,lib/std/system/arithmetics.nim .
448448
(at inc.1.sysvq0asl 19,~4
449-
(i -1)) 21,12,lib/std/system.nim
449+
(i -1)) 21,12,lib/std/system/arithmetics.nim
450450
(params 1
451451
(param :x.8 . . 3
452452
(mut 23,19,tests/nimony/iter/tforloops1.nim
453-
(i -1)) .)) 0,12,lib/std/system.nim . 32,12,lib/std/system.nim
453+
(i -1)) .)) 0,12,lib/std/system/arithmetics.nim . 32,12,lib/std/system/arithmetics.nim
454454
(pragmas 2
455-
(inline)) 0,12,lib/std/system.nim . 2,13,lib/std/system.nim
455+
(inline)) 0,12,lib/std/system/arithmetics.nim . 2,13,lib/std/system/arithmetics.nim
456456
(stmts 2,1
457457
(asgn ~2
458458
(hderef x.8) 6
@@ -657,13 +657,13 @@
657657
(converter :toOpenArray.2.tfo161bfb1 . 0,13,lib/std/system/openarrays.nim .
658658
(at toOpenArray.0.sysvq0asl
659659
(rangetype
660-
(i -1) +0 +1) 0,2,lib/std/system.nim
660+
(i -1) +0 +1) 22,35,lib/std/system/basic_types.nim
661661
(bool)) 28,13,lib/std/system/openarrays.nim
662662
(params 3
663663
(param ~2 :x.12 .
664664
(pragmas 2
665665
(byref)) 16
666-
(array 0,2,lib/std/system.nim
666+
(array 22,35,lib/std/system/basic_types.nim
667667
(bool) 13,131,tests/nimony/iter/tforloops1.nim
668668
(rangetype
669669
(i -1) +0 +1)) .)) 37,13,lib/std/system/openarrays.nim openArray.0.Ijejnmx1.tfo161bfb1 69,13,lib/std/system/openarrays.nim
@@ -701,7 +701,7 @@
701701
(kv ~1 a.1.Ijejnmx1.tfo161bfb1 2
702702
(cast 5
703703
(ptr 18
704-
(uarray 0,2,lib/std/system.nim
704+
(uarray 22,35,lib/std/system/basic_types.nim
705705
(bool))) 32
706706
(addr 1 x.12))) 45
707707
(kv ~3 len.7.Ijejnmx1.tfo161bfb1 2,122,lib/std/system.nim
@@ -721,11 +721,11 @@
721721
(i -1) 13,131,tests/nimony/iter/tforloops1.nim +0))) 2 +1))))))))) ~2,~1
722722
(ret result.2))) 13,130
723723
(iterator :items.1.tfo161bfb1 . 0,41,lib/std/system/openarrays.nim .
724-
(at items.1.sysvq0asl 0,2,lib/std/system.nim
724+
(at items.1.sysvq0asl 22,35,lib/std/system/basic_types.nim
725725
(bool)) 18,41,lib/std/system/openarrays.nim
726726
(params 1
727727
(param :a.13 . . 12 openArray.0.Ijejnmx1.tfo161bfb1 .)) 19,41,lib/std/system/openarrays.nim
728-
(mut 0,2,lib/std/system.nim
728+
(mut 22,35,lib/std/system/basic_types.nim
729729
(bool)) 0,41,lib/std/system/openarrays.nim . 0,41,lib/std/system/openarrays.nim . 2,42,lib/std/system/openarrays.nim
730730
(stmts 4
731731
(var :i.14 . . 19,3,tests/nimony/iter/tforloops1.nim
@@ -782,7 +782,7 @@
782782
(dot ~1 x.14 a.1.Inff8aa1.tfo161bfb1 +0) 3 idx.2))) ~97
783783
(ret result.4))) 15,43,lib/std/system/openarrays.nim
784784
(func :len.1.tfo161bfb1 . ~15,~18 .
785-
(at len.8.sysvq0asl 0,2,lib/std/system.nim
785+
(at len.8.sysvq0asl 22,35,lib/std/system/basic_types.nim
786786
(bool)) ~3,~18
787787
(params 1
788788
(param :a.16 . . 12 openArray.0.Ijejnmx1.tfo161bfb1 .)) 4,~18
@@ -796,13 +796,13 @@
796796
(dot ~1 a.16 len.7.Ijejnmx1.tfo161bfb1 +0)) ~48
797797
(ret result.5))) 10,44,lib/std/system/openarrays.nim
798798
(proc :\5B\5D.1.tfo161bfb1 . ~10,~36 .
799-
(at \5B\5D.9.sysvq0asl 0,2,lib/std/system.nim
799+
(at \5B\5D.9.sysvq0asl 22,35,lib/std/system/basic_types.nim
800800
(bool)) 3,~36
801801
(params 1
802802
(param :x.15 . . 12 openArray.0.Ijejnmx1.tfo161bfb1 .) 18
803803
(param :idx.3 . . 5
804804
(i -1) .)) 19,~36
805-
(mut 0,2,lib/std/system.nim
805+
(mut 22,35,lib/std/system/basic_types.nim
806806
(bool)) 38,~36
807807
(pragmas 2
808808
(inline) 10
@@ -816,7 +816,7 @@
816816
(dot ~1 x.15 len.7.Ijejnmx1.tfo161bfb1 +0))))) ~10,~36 . 87,~36
817817
(stmts 3
818818
(result :result.6 . . ~71
819-
(mut 0,2,lib/std/system.nim
819+
(mut 22,35,lib/std/system/basic_types.nim
820820
(bool)) .) 3
821821
(asgn result.6 ~2
822822
(haddr
@@ -836,14 +836,14 @@
836836
(fld :len.7.Inff8aa1.tfo161bfb1 . . 5
837837
(i -1) .))) 37,13,lib/std/system/openarrays.nim
838838
(type :openArray.0.Ijejnmx1.tfo161bfb1 .
839-
(at openArray.0.sysvq0asl 0,2,lib/std/system.nim
839+
(at openArray.0.sysvq0asl 22,35,lib/std/system/basic_types.nim
840840
(bool)) ~21,~9
841841
(pragmas 2
842842
(view)) ~10,~9
843843
(object . ~23,1
844844
(fld :a.1.Ijejnmx1.tfo161bfb1 . . 3
845845
(ptr 18
846-
(uarray 0,2,lib/std/system.nim
846+
(uarray 22,35,lib/std/system/basic_types.nim
847847
(bool))) .) ~23,2
848848
(fld :len.7.Ijejnmx1.tfo161bfb1 . . 5
849849
(i -1) .))))

tests/nimony/sysbasics/temptyseq.nif

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -908,15 +908,15 @@
908908
(dot ~3 src.5 data.0.Iq4ofkp1.temd2l7vy +0) 6 i.11)))) ,1
909909
(cmd inc.0.temd2l7vy 4
910910
(haddr i.11)))))) 4,15,lib/std/system/seqimpl.nim
911-
(proc :inc.0.temd2l7vy . 0,12,lib/std/system.nim .
911+
(proc :inc.0.temd2l7vy . 0,12,lib/std/system/arithmetics.nim .
912912
(at inc.1.sysvq0asl 5,~10
913-
(i -1)) 21,12,lib/std/system.nim
913+
(i -1)) 21,12,lib/std/system/arithmetics.nim
914914
(params 1
915915
(param :x.5 . . 3
916916
(mut 9,5,lib/std/system/seqimpl.nim
917-
(i -1)) .)) 0,12,lib/std/system.nim . 32,12,lib/std/system.nim
917+
(i -1)) .)) 0,12,lib/std/system/arithmetics.nim . 32,12,lib/std/system/arithmetics.nim
918918
(pragmas 2
919-
(inline)) 0,12,lib/std/system.nim . 2,13,lib/std/system.nim
919+
(inline)) 0,12,lib/std/system/arithmetics.nim . 2,13,lib/std/system/arithmetics.nim
920920
(stmts 2,1
921921
(asgn ~2
922922
(hderef x.5) 6

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,64,lib/std/system.nim
41+
(hconv 17,67,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,64,lib/std/system.nim
46+
(hconv 17,67,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,64,lib/std/system.nim
53+
(hconv 17,67,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,63,lib/std/system.nim
76+
(hconv 17,66,lib/std/system/comparisons.nim
7777
(i +32) +123))) ,21
7878
(discard 12
7979
(eq
8080
(i +32) ~4
81-
(hconv 17,63,lib/std/system.nim
81+
(hconv 17,66,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,63,lib/std/system.nim
88+
(hconv 17,66,lib/std/system/comparisons.nim
8989
(i +32) +123))))

0 commit comments

Comments
 (0)