Open Nmerryman opened 1 year ago
I think the same problem demonstrates itself while running 'koch doc': ... ./bin/nim doc --errormax:3 --hint:Conf:off --hint:Path:off --hint:Processing:off --hint:XDeclaredButNotUsed:off --warning:UnusedImport:off -d:boot --putenv:nimversion=2.1.1 -d:nimExperimentalLinenoiseExtra --d:nimPreviewSlimSystem --doc.plausibleAnalytics:nim-lang.org --outdir:web/upload/2.1.1 --index:on pkgs/checksums/src/checksums/sha2.nim
/home/xci/src/Nim/pkgs/checksums/src/checksums/sha2.nim(389, 17) template/generic instantiation of shaUpdate
from here
/home/xci/src/Nim/pkgs/checksums/src/checksums/sha2.nim(338, 10) template/generic instantiation of shaTransform
from here
/home/xci/src/Nim/pkgs/checksums/src/checksums/sha2.nim(319, 3) Error: type mismatch
Expression: inc ctx.state[0], a
[2] a: CompatUint64 .....
(I just shunt the 'inc' with manual addition in the entire file and the build completes).
!nim c
type
MyType[T] = seq[T]
A[T] = distinct MyType[T]
B[T] = distinct A[T]
proc doThing[T](a: var A[T]) = discard
proc doThing[T](b: var B[T]) = A[T](b).doThing()
var a = B[int].default
doThing(a)
@juancarlospaco (collaborator)devel :-1: FAIL
Output
Error: Command failed: nim c --run -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
/home/runner/work/Nim/Nim/temp.nim(8, 8) template/generic instantiation of `doThing` from here
/home/runner/work/Nim/Nim/temp.nim(6, 39) Error: type mismatch
Expression: doThing(A[T](b))
[1] A[T](b): A[system.int]
Expected one of (first mismatch at [position]):
[1] proc doThing[T](a: var A[T])
[1] proc doThing[T](b: var B[T])
2023-09-04T18:58:06
2023-09-04T18:58:06
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:07
2023-09-04T18:58:07
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:08
2023-09-04T18:58:08
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:11
2023-09-04T18:58:11
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:14
2023-09-04T18:58:15
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:30
2023-09-04T18:58:30
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:43
2023-09-04T18:58:43
0 bytes (0 bytes)
```cpp
```
2023-09-04T18:58:52
2023-09-04T18:58:52
0 bytes (0 bytes)
```cpp
```
11.4.0
2.35
3.18.1
17.1
5.15.0
2023-09-04T18:57:16Z
2
nim c --run -d:nimDebugDlOpen -d:ssl -d:nimDisableCertificateValidation --forceBuild:on --colors:off --verbosity:0 --hints:off --warnings:off --lineTrace:off --nimcache:/home/runner/work/Nim/Nim --out:/home/runner/work/Nim/Nim/temp /home/runner/work/Nim/Nim/temp.nim
50 minutes
bisecting 8
commits at 0
commits per second. It thinks A[T](b)
is immutable
Fixing this makes the compiler pick the same destructor for int
as seq[int]
?
Description
When builtin types have generics, chaining distincts causes improper proc resolution. This doesn't work
Nim Version
Nim Compiler Version 2.0.0 [Windows: amd64] Compiled at 2023-08-01 Copyright (c) 2006-2023 by Andreas Rumpf
active boot switches: -d:release
Current Output
Expected Output
Possible Solution
No response
Additional Information
Changing the base type to an object works
As does removing the generic parameters and hard coding a type instead.