Files
Nim/tests/js/t21247.nim
Jake Leahy 0a45543cc1 Specify that address is taken when converter takes a var parameter (#21391)
* Add test case

* closes #21247 Add the sfAddrTaken flag to var parameters in converters

This allows the JS backend to properly pass the parameter as a fat pointer
2023-02-21 12:27:12 +01:00

16 lines
494 B
Nim

import std/typetraits
type
QueryParams* = distinct seq[(string, string)]
converter toBase*(params: var QueryParams): var seq[(string, string)] =
params.distinctBase
proc foo(): QueryParams =
# Issue was that the implicit converter call didn't say that it took the
# address of the parameter it was converting. This led to the parameter not being
# passed as a fat pointer which toBase expected
result.add(("hello", "world"))
assert foo().distinctBase() == @[("hello", "world")]