Skip to content

Commit a469720

Browse files
committed
Remove re-definition of SomeSet
Commit ebee42e ("A little cleanup around set types.", 2021-10-01) added an exported definition of `SomeSet` that included the built-in `set` type. However, a typical Nim user is familiar with the definition of `SomeSet` in the standard library of SomeSet*[A] = HashSet[A] | OrderedSet[A] and was thus likely to read the lines proc parseHook*[T](s: string, i: var int, v: var SomeSet[T]) = and proc dumpHook*[T](s: var string, v: SomeSet[T]) = and believe that jsony does not support the built-in `set` type. This commit therefore removes the `SomeSet` re-definition, which also means that jsony once again works with code like import std/sets import pkg/jsony proc foo[T](s: SomeSet[T]) = discard which successfully compiled with jsony 1.0.5 and earlier, but produced an error with jsony 1.1.0 (2021-11-04): /tmp/foo.nim(4, 16) Error: ambiguous identifier: 'SomeSet' -- use one of the following: sets.SomeSet: SomeSet jsony.SomeSet: SomeSet Support for the built-in `set` type was originally added by commit 9a4f118 (2021-10-01). Fixes: #33
1 parent d7070a7 commit a469720

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/jsony.nim

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@ type
1111
SomeTable*[K, V] = Table[K, V] | OrderedTable[K, V] |
1212
TableRef[K, V] | OrderedTableRef[K, V]
1313

14-
SomeSet*[A] = HashSet[A] | OrderedSet[A] | set[A]
15-
1614
proc parseHook*[T](s: string, i: var int, v: var seq[T])
1715
proc parseHook*[T: enum](s: string, i: var int, v: var T)
1816
proc parseHook*[T: object|ref object](s: string, i: var int, v: var T)
1917
proc parseHook*[T](s: string, i: var int, v: var SomeTable[string, T])
20-
proc parseHook*[T](s: string, i: var int, v: var SomeSet[T])
18+
proc parseHook*[T](s: string, i: var int, v: var (SomeSet[T]|set[T]))
2119
proc parseHook*[T: tuple](s: string, i: var int, v: var T)
2220
proc parseHook*[T: array](s: string, i: var int, v: var T)
2321
proc parseHook*[T: not object](s: string, i: var int, v: var ref T)
@@ -453,8 +451,8 @@ proc parseHook*[T](s: string, i: var int, v: var SomeTable[string, T]) =
453451
break
454452
eatChar(s, i, '}')
455453

456-
proc parseHook*[T](s: string, i: var int, v: var SomeSet[T]) =
457-
## Parse a set type.
454+
proc parseHook*[T](s: string, i: var int, v: var (SomeSet[T]|set[T])) =
455+
## Parses `HashSet`, `OrderedSet`, or a built-in `set` type.
458456
eatSpace(s, i)
459457
eatChar(s, i, '[')
460458
while true:
@@ -757,7 +755,7 @@ proc dumpHook*(s: var string, v: ref) =
757755
else:
758756
s.dumpHook(v[])
759757

760-
proc dumpHook*[T](s: var string, v: SomeSet[T]) =
758+
proc dumpHook*[T](s: var string, v: SomeSet[T]|set[T]) =
761759
s.add '['
762760
var i = 0
763761
for e in v:

0 commit comments

Comments
 (0)