summary refs log tree commit diff stats
path: root/compiler/astalgo.nim
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/astalgo.nim')
-rw-r--r--compiler/astalgo.nim62
1 files changed, 31 insertions, 31 deletions
diff --git a/compiler/astalgo.nim b/compiler/astalgo.nim
index eb7ffc63e..e95dbf7c8 100644
--- a/compiler/astalgo.nim
+++ b/compiler/astalgo.nim
@@ -14,7 +14,7 @@
 import 
   ast, hashes, intsets, strutils, options, msgs, ropes, idents, rodutils
 
-proc hashNode*(p: PObject): THash
+proc hashNode*(p: RootRef): THash
 proc treeToYaml*(n: PNode, indent: int = 0, maxRecDepth: int = - 1): PRope
   # Convert a tree into its YAML representation; this is used by the
   # YAML code generator and it is invaluable for debugging purposes.
@@ -24,21 +24,21 @@ proc symToYaml*(n: PSym, indent: int = 0, maxRecDepth: int = - 1): PRope
 proc lineInfoToStr*(info: TLineInfo): PRope
   
 # ----------------------- node sets: ---------------------------------------
-proc objectSetContains*(t: TObjectSet, obj: PObject): bool
+proc objectSetContains*(t: TObjectSet, obj: RootRef): bool
   # returns true whether n is in t
-proc objectSetIncl*(t: var TObjectSet, obj: PObject)
+proc objectSetIncl*(t: var TObjectSet, obj: RootRef)
   # include an element n in the table t
-proc objectSetContainsOrIncl*(t: var TObjectSet, obj: PObject): bool
+proc objectSetContainsOrIncl*(t: var TObjectSet, obj: RootRef): bool
   # more are not needed ...
 
 # ----------------------- (key, val)-Hashtables ----------------------------
-proc tablePut*(t: var TTable, key, val: PObject)
-proc tableGet*(t: TTable, key: PObject): PObject
+proc tablePut*(t: var TTable, key, val: RootRef)
+proc tableGet*(t: TTable, key: RootRef): RootRef
 type 
-  TCmpProc* = proc (key, closure: PObject): bool {.nimcall.} # true if found
+  TCmpProc* = proc (key, closure: RootRef): bool {.nimcall.} # true if found
 
-proc tableSearch*(t: TTable, key, closure: PObject, 
-                  comparator: TCmpProc): PObject
+proc tableSearch*(t: TTable, key, closure: RootRef, 
+                  comparator: TCmpProc): RootRef
   # return val as soon as comparator returns true; if this never happens,
   # nil is returned
 
@@ -79,9 +79,9 @@ proc debug*(n: PType) {.deprecated.}
 proc debug*(n: PNode) {.deprecated.}
 
 # --------------------------- ident tables ----------------------------------
-proc idTableGet*(t: TIdTable, key: PIdObj): PObject
-proc idTableGet*(t: TIdTable, key: int): PObject
-proc idTablePut*(t: var TIdTable, key: PIdObj, val: PObject)
+proc idTableGet*(t: TIdTable, key: PIdObj): RootRef
+proc idTableGet*(t: TIdTable, key: int): RootRef
+proc idTablePut*(t: var TIdTable, key: PIdObj, val: RootRef)
 proc idTableHasObjectAsKey*(t: TIdTable, key: PIdObj): bool
   # checks if `t` contains the `key` (compared by the pointer value, not only
   # `key`'s id)
@@ -196,7 +196,7 @@ proc getSymFromList(list: PNode, ident: PIdent, start: int = 0): PSym =
     else: internalError(list.info, "getSymFromList")
   result = nil
 
-proc hashNode(p: PObject): THash = 
+proc hashNode(p: RootRef): THash = 
   result = hash(cast[pointer](p))
 
 proc mustRehash(length, counter: int): bool = 
@@ -283,7 +283,7 @@ proc symToYamlAux(n: PSym, marker: var TIntSet, indent: int,
     result = toRope("null")
   elif containsOrIncl(marker, n.id): 
     result = ropef("\"$1 @$2\"", [toRope(n.name.s), toRope(
-        strutils.toHex(cast[TAddress](n), sizeof(n) * 2))])
+        strutils.toHex(cast[ByteAddress](n), sizeof(n) * 2))])
   else: 
     var ast = treeToYamlAux(n.ast, marker, indent + 2, maxRecDepth - 1)
     result = ropeConstr(indent, [toRope("kind"), 
@@ -304,7 +304,7 @@ proc typeToYamlAux(n: PType, marker: var TIntSet, indent: int,
     result = toRope("null")
   elif containsOrIncl(marker, n.id): 
     result = ropef("\"$1 @$2\"", [toRope($n.kind), toRope(
-        strutils.toHex(cast[TAddress](n), sizeof(n) * 2))])
+        strutils.toHex(cast[ByteAddress](n), sizeof(n) * 2))])
   else: 
     if sonsLen(n) > 0: 
       result = toRope("[")
@@ -469,7 +469,7 @@ proc nextTry(h, maxHash: THash): THash =
   # generates each int in range(maxHash) exactly once (see any text on
   # random-number generation for proof).
   
-proc objectSetContains(t: TObjectSet, obj: PObject): bool =
+proc objectSetContains(t: TObjectSet, obj: RootRef): bool =
   # returns true whether n is in t
   var h: THash = hashNode(obj) and high(t.data) # start with real hash value
   while t.data[h] != nil:
@@ -478,7 +478,7 @@ proc objectSetContains(t: TObjectSet, obj: PObject): bool =
     h = nextTry(h, high(t.data))
   result = false
 
-proc objectSetRawInsert(data: var TObjectSeq, obj: PObject) =
+proc objectSetRawInsert(data: var TObjectSeq, obj: RootRef) =
   var h: THash = hashNode(obj) and high(data)
   while data[h] != nil:
     assert(data[h] != obj)
@@ -493,12 +493,12 @@ proc objectSetEnlarge(t: var TObjectSet) =
     if t.data[i] != nil: objectSetRawInsert(n, t.data[i])
   swap(t.data, n)
 
-proc objectSetIncl(t: var TObjectSet, obj: PObject) = 
+proc objectSetIncl(t: var TObjectSet, obj: RootRef) = 
   if mustRehash(len(t.data), t.counter): objectSetEnlarge(t)
   objectSetRawInsert(t.data, obj)
   inc(t.counter)
 
-proc objectSetContainsOrIncl(t: var TObjectSet, obj: PObject): bool = 
+proc objectSetContainsOrIncl(t: var TObjectSet, obj: RootRef): bool = 
   # returns true if obj is already in the string table:
   var h: THash = hashNode(obj) and high(t.data)
   while true: 
@@ -516,7 +516,7 @@ proc objectSetContainsOrIncl(t: var TObjectSet, obj: PObject): bool =
   inc(t.counter)
   result = false
 
-proc tableRawGet(t: TTable, key: PObject): int = 
+proc tableRawGet(t: TTable, key: RootRef): int = 
   var h: THash = hashNode(key) and high(t.data) # start with real hash value
   while t.data[h].key != nil: 
     if t.data[h].key == key: 
@@ -524,8 +524,8 @@ proc tableRawGet(t: TTable, key: PObject): int =
     h = nextTry(h, high(t.data))
   result = -1
 
-proc tableSearch(t: TTable, key, closure: PObject, 
-                 comparator: TCmpProc): PObject = 
+proc tableSearch(t: TTable, key, closure: RootRef, 
+                 comparator: TCmpProc): RootRef = 
   var h: THash = hashNode(key) and high(t.data) # start with real hash value
   while t.data[h].key != nil: 
     if t.data[h].key == key: 
@@ -535,12 +535,12 @@ proc tableSearch(t: TTable, key, closure: PObject,
     h = nextTry(h, high(t.data))
   result = nil
 
-proc tableGet(t: TTable, key: PObject): PObject = 
+proc tableGet(t: TTable, key: RootRef): RootRef = 
   var index = tableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = nil
   
-proc tableRawInsert(data: var TPairSeq, key, val: PObject) = 
+proc tableRawInsert(data: var TPairSeq, key, val: RootRef) = 
   var h: THash = hashNode(key) and high(data)
   while data[h].key != nil: 
     assert(data[h].key != key)
@@ -556,7 +556,7 @@ proc tableEnlarge(t: var TTable) =
     if t.data[i].key != nil: tableRawInsert(n, t.data[i].key, t.data[i].val)
   swap(t.data, n)
 
-proc tablePut(t: var TTable, key, val: PObject) = 
+proc tablePut(t: var TTable, key, val: RootRef) = 
   var index = tableRawGet(t, key)
   if index >= 0: 
     t.data[index].val = val
@@ -740,22 +740,22 @@ proc idTableHasObjectAsKey(t: TIdTable, key: PIdObj): bool =
   if index >= 0: result = t.data[index].key == key
   else: result = false
   
-proc idTableGet(t: TIdTable, key: PIdObj): PObject = 
+proc idTableGet(t: TIdTable, key: PIdObj): RootRef = 
   var index = idTableRawGet(t, key.id)
   if index >= 0: result = t.data[index].val
   else: result = nil
   
-proc idTableGet(t: TIdTable, key: int): PObject = 
+proc idTableGet(t: TIdTable, key: int): RootRef = 
   var index = idTableRawGet(t, key)
   if index >= 0: result = t.data[index].val
   else: result = nil
 
-iterator pairs*(t: TIdTable): tuple[key: int, value: PObject] =
+iterator pairs*(t: TIdTable): tuple[key: int, value: RootRef] =
   for i in 0..high(t.data):
     if t.data[i].key != nil:
       yield (t.data[i].key.id, t.data[i].val)
   
-proc idTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: PObject) = 
+proc idTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: RootRef) = 
   var h: THash
   h = key.id and high(data)
   while data[h].key != nil: 
@@ -765,7 +765,7 @@ proc idTableRawInsert(data: var TIdPairSeq, key: PIdObj, val: PObject) =
   data[h].key = key
   data[h].val = val
 
-proc idTablePut(t: var TIdTable, key: PIdObj, val: PObject) = 
+proc idTablePut(t: var TIdTable, key: PIdObj, val: RootRef) = 
   var 
     index: int
     n: TIdPairSeq
@@ -784,7 +784,7 @@ proc idTablePut(t: var TIdTable, key: PIdObj, val: PObject) =
     idTableRawInsert(t.data, key, val)
     inc(t.counter)
 
-iterator idTablePairs*(t: TIdTable): tuple[key: PIdObj, val: PObject] =
+iterator idTablePairs*(t: TIdTable): tuple[key: PIdObj, val: RootRef] =
   for i in 0 .. high(t.data):
     if not isNil(t.data[i].key): yield (t.data[i].key, t.data[i].val)