Open arnetheduck opened 4 years ago
An existing work-around is to avoid the usage of an anonymous function:
type
Result[T, E] = object
DataProc = proc(val: openArray[byte])
GetProc = proc (onData: DataProc): Result[bool, cstring]
func get[T, E](self: Result[T, E]): T =
discard
template `[]`[T, E](self: Result[T, E]): T =
self.get()
proc testKVStore() =
var v: seq[byte]
var p: GetProc
proc callback(data: openArray[byte]) =
v = @data
discard p(callback)[]
testKVStore()
!nim c
type
Result[T, E] = object
DataProc = proc(val: openArray[byte])
GetProc = proc (onData: DataProc): Result[bool, cstring]
func get[T, E](self: Result[T, E]): T =
discard
template `[]`[T, E](self: Result[T, E]): T =
self.get()
proc testKVStore() =
var v: seq[byte]
var p: GetProc
discard p(proc(data: openArray[byte]) =
v = @data
)[]
testKVStore()
@bung87 (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(14, 6) template/generic instantiation of `[]` from here
/home/runner/work/Nim/Nim/temp.nim(12, 17) Error: redefinition of ':anonymous'; previous declaration here: /home/runner/work/Nim/Nim/temp.nim(12, 17)
2023-08-27T13:52:43
2023-08-27T13:52:44
0 bytes (0 bytes)
```cpp
```
2023-08-27T13:52:45
2023-08-27T13:52:45
0 bytes (0 bytes)
```cpp
```
2023-08-27T13:52:45
2023-08-27T13:52:45
0 bytes (0 bytes)
```cpp
```
2023-08-27T13:52:48
2023-08-27T13:52:49
0 bytes (0 bytes)
```cpp
```
2023-08-27T13:52:53
2023-08-27T13:52:53
97.11 Kb (99,440 bytes)
```cpp
#define NIM_INTBITS 64
#include "nimbase.h"
#include 2023-08-27T13:53:11
2023-08-27T13:53:11
97.11 Kb (99,440 bytes)
```cpp
#define NIM_INTBITS 64
#include "nimbase.h"
#include 2023-08-27T13:53:22
2023-08-27T13:53:22
97.11 Kb (99,440 bytes)
```cpp
#define NIM_INTBITS 64
#include "nimbase.h"
#include 2023-08-27T13:53:33
2023-08-27T13:53:33
97.11 Kb (99,440 bytes)
```cpp
#define NIM_INTBITS 64
#include "nimbase.h"
#include 11.4.0
2.35
3.18.1
17.1
5.15.0
2023-08-27T13:37:54Z
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
57 minutes
bisecting 8
commits at 0
commits per second. Now gives "redefinition of :anonymous"
Example
Current Output