mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-24 08:15:25 +00:00
fixes #10456,#12928 issues when chaining templates to sortedByIt (#15734)
* update c_malloc's to csize_t
fix for broken --os:ios
* I'm an idiot sorry
* Create talgorithm.nim
* workaround for #10456
I don't understand the intricacies of how lambdalifting and template expansions interact with lent, so i don't know how to fix the real problem, but this sidesteps whatever issue that is.
* working test, use typeof rather than auto
(cherry picked from commit 218acfe367)
This commit is contained in:
@@ -501,7 +501,7 @@ template sortedByIt*(seq1, op: untyped): untyped =
|
||||
# Nested sort
|
||||
assert people.sortedByIt((it.age, it.name)) == @[(name: "p2", age: 20),
|
||||
(name: "p3", age: 30), (name: "p4", age: 30), (name: "p1", age: 60)]
|
||||
var result = sorted(seq1, proc(x, y: typeof(seq1[0])): int =
|
||||
var result = sorted(seq1, proc(x, y: typeof(items(seq1), typeOfIter)): int =
|
||||
var it {.inject.} = x
|
||||
let a = op
|
||||
it = y
|
||||
|
||||
18
tests/stdlib/talgorithm.nim
Normal file
18
tests/stdlib/talgorithm.nim
Normal file
@@ -0,0 +1,18 @@
|
||||
discard """
|
||||
output:'''@["3", "2", "1"]
|
||||
'''
|
||||
"""
|
||||
#12928,10456
|
||||
import sequtils, strutils, algorithm, json
|
||||
|
||||
proc test() =
|
||||
try:
|
||||
let info = parseJson("""
|
||||
{"a": ["1", "2", "3"]}
|
||||
""")
|
||||
let prefixes = info["a"].getElems().mapIt(it.getStr()).sortedByIt(it).reversed()
|
||||
echo prefixes
|
||||
except:
|
||||
discard
|
||||
|
||||
test()
|
||||
Reference in New Issue
Block a user