From 2acf74d458accf65d969199a389c8dbc2eedab55 Mon Sep 17 00:00:00 2001 From: Arne Döring Date: Fri, 22 Nov 2019 19:57:43 +0100 Subject: delete list comprehension (#12392) The `lc` macro is now part of `graveyard` repository. --- lib/pure/sugar.nim | 58 ------------------------------------------------------ 1 file changed, 58 deletions(-) (limited to 'lib') diff --git a/lib/pure/sugar.nim b/lib/pure/sugar.nim index c811f115c..af32e1546 100644 --- a/lib/pure/sugar.nim +++ b/lib/pure/sugar.nim @@ -122,64 +122,6 @@ macro `->`*(p, b: untyped): untyped = result = createProcType(p, b) -type ListComprehension = object -var lc* {.deprecated.}: ListComprehension - -template `|`*(lc: ListComprehension, comp: untyped): untyped {.deprecated.} = lc - -macro `[]`*(lc: ListComprehension, comp, typ: untyped): untyped {.deprecated.} = - ## List comprehension, returns a sequence. `comp` is the actual list - ## comprehension, for example ``x | (x <- 1..10, x mod 2 == 0)``. `typ` is - ## the type that will be stored inside the result seq. - ## - ## .. code-block:: nim - ## - ## echo lc[x | (x <- 1..10, x mod 2 == 0), int] - ## - ## const n = 20 - ## echo lc[(x,y,z) | (x <- 1..n, y <- x..n, z <- y..n, x*x + y*y == z*z), - ## tuple[a,b,c: int]] - ## **Deprecated since version 0.19.9** - - expectLen(comp, 3) - expectKind(comp, nnkInfix) - assert($comp[0] == "|") - - result = newCall( - newDotExpr( - newIdentNode("result"), - newIdentNode("add")), - comp[1]) - - for i in countdown(comp[2].len-1, 0): - let x = comp[2][i] - expectMinLen(x, 1) - if x[0].kind == nnkIdent and $x[0].ident == "<-": - expectLen(x, 3) - result = newNimNode(nnkForStmt).add(x[1], x[2], result) - else: - result = newIfStmt((x, result)) - - result = newNimNode(nnkCall).add( - newNimNode(nnkPar).add( - newNimNode(nnkLambda).add( - newEmptyNode(), - newEmptyNode(), - newEmptyNode(), - newNimNode(nnkFormalParams).add( - newNimNode(nnkBracketExpr).add( - newIdentNode("seq"), - typ)), - newEmptyNode(), - newEmptyNode(), - newStmtList( - newAssignment( - newIdentNode("result"), - newNimNode(nnkPrefix).add( - newIdentNode("@"), - newNimNode(nnkBracket))), - result)))) - macro dump*(x: typed): untyped = ## Dumps the content of an expression, useful for debugging. ## It accepts any expression and prints a textual representation -- cgit 1.4.1-2-gfad0