prepare for upcoming parsing change of unary operators
This commit is contained in:
parent
d7c39dd801
commit
a541be8935
8 changed files with 97 additions and 97 deletions
|
|
@ -143,7 +143,7 @@ proc importForwarded(c: PContext, n: PNode, exceptSet: IntSet) =
|
|||
of nkExportExceptStmt:
|
||||
localError(n.info, errGenerated, "'export except' not implemented")
|
||||
else:
|
||||
for i in 0 ..safeLen(n)-1:
|
||||
for i in 0..safeLen(n)-1:
|
||||
importForwarded(c, n.sons[i], exceptSet)
|
||||
|
||||
proc importModuleAs(n: PNode, realModule: PSym): PSym =
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ proc freezeMutableRope*(r: PRope) {.inline.} =
|
|||
r.length = r.data.len
|
||||
|
||||
var
|
||||
cache: array[0..2048*2 -1, PRope]
|
||||
cache: array[0..2048*2 - 1, PRope]
|
||||
|
||||
proc resetRopeCache* =
|
||||
for i in low(cache)..high(cache):
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ proc semArrayIndex(c: PContext, n: PNode): PType =
|
|||
if not isOrdinalType(e.typ.lastSon):
|
||||
localError(n[1].info, errOrdinalTypeExpected)
|
||||
result = makeRangeWithStaticExpr(c, e)
|
||||
if c.inGenericContext >0: result.flags.incl tfUnresolved
|
||||
if c.inGenericContext > 0: result.flags.incl tfUnresolved
|
||||
elif e.kind in nkCallKinds and hasGenericArguments(e):
|
||||
if not isOrdinalType(e.typ):
|
||||
localError(n[1].info, errOrdinalTypeExpected)
|
||||
|
|
|
|||
|
|
@ -434,7 +434,7 @@ proc typeToString(typ: PType, prefer: TPreferedDesc = preferName): string =
|
|||
result = "int literal(" & $t.n.intVal & ")"
|
||||
of tyGenericBody, tyGenericInst, tyGenericInvocation:
|
||||
result = typeToString(t.sons[0]) & '['
|
||||
for i in countup(1, sonsLen(t) -1 -ord(t.kind != tyGenericInvocation)):
|
||||
for i in countup(1, sonsLen(t)-1-ord(t.kind != tyGenericInvocation)):
|
||||
if i > 1: add(result, ", ")
|
||||
add(result, typeToString(t.sons[i], preferGenericArg))
|
||||
add(result, ']')
|
||||
|
|
|
|||
|
|
@ -734,14 +734,14 @@ proc basename*(a: NimNode): NimNode =
|
|||
of nnkIdent: return a
|
||||
of nnkPostfix, nnkPrefix: return a[1]
|
||||
else:
|
||||
quit "Do not know how to get basename of ("& treeRepr(a) &")\n"& repr(a)
|
||||
quit "Do not know how to get basename of (" & treeRepr(a) & ")\n" & repr(a)
|
||||
|
||||
proc `basename=`*(a: NimNode; val: string) {.compileTime.}=
|
||||
case a.kind
|
||||
of nnkIdent: macros.`ident=`(a, !val)
|
||||
of nnkPostfix, nnkPrefix: a[1] = ident(val)
|
||||
else:
|
||||
quit "Do not know how to get basename of ("& treeRepr(a)& ")\n"& repr(a)
|
||||
quit "Do not know how to get basename of (" & treeRepr(a) & ")\n" & repr(a)
|
||||
|
||||
proc postfix*(node: NimNode; op: string): NimNode {.compileTime.} =
|
||||
newNimNode(nnkPostfix).add(ident(op), node)
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ iterator filter*[T](seq1: seq[T], pred: proc(item: T): bool {.closure.}): T =
|
|||
## for n in filter(numbers, proc (x: int): bool = x mod 2 == 0):
|
||||
## echo($n)
|
||||
## # echoes 4, 8, 4 in separate lines
|
||||
for i in countup(0, len(seq1) -1):
|
||||
for i in countup(0, len(seq1)-1):
|
||||
var item = seq1[i]
|
||||
if pred(item): yield seq1[i]
|
||||
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ proc `[]`*[A, B](t: Table[A, B], key: A): B =
|
|||
|
||||
proc mget*[A, B](t: var Table[A, B], key: A): var B =
|
||||
## retrieves the value at ``t[key]``. The value can be modified.
|
||||
## If `key` is not in `t`, the ``EInvalidKey`` exception is raised.
|
||||
## If `key` is not in `t`, the ``KeyError`` exception is raised.
|
||||
var hc: THash
|
||||
var index = rawGet(t, key, hc)
|
||||
if index >= 0: result = t.data[index].val
|
||||
|
|
|
|||
4
todo.txt
4
todo.txt
|
|
@ -1,16 +1,16 @@
|
|||
version 0.10.4
|
||||
==============
|
||||
|
||||
- improve the parser; deal with echo $foo gotcha
|
||||
- improve GC-unsafety warnings
|
||||
- make 'nil' work for 'add' and 'len'
|
||||
- disallow negative indexing
|
||||
- improve the parser; deal with echo $foo gotcha
|
||||
- add "all threads are blocked" detection to 'spawn'
|
||||
|
||||
|
||||
version 1.0
|
||||
===========
|
||||
|
||||
- disallow negative indexing
|
||||
- figure out why C++ bootstrapping is so much slower
|
||||
- nimsuggest: auto-completion needs to work in 'class' macros
|
||||
- improve the docs for inheritance
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue