more fixes to get rid of tyPureObject

This commit is contained in:
Araq 2011-09-24 11:50:46 +02:00
commit 92543a3037
4 changed files with 8 additions and 8 deletions

View file

@ -498,7 +498,7 @@ proc getTypeDescAux(m: BModule, typ: PType, check: var TIntSet): PRope =
if not isImportedType(t):
appf(m.s[cfsTypes], "typedef NU8 $1[$2];$n",
[result, toRope(getSize(t))])
of tyGenericInst, tyDistinct, tyOrdinal:
of tyGenericInst, tyDistinct, tyOrdinal, tyConst, tyMutable, tyIter:
result = getTypeDescAux(m, lastSon(t), check)
else:
InternalError("getTypeDescAux(" & $t.kind & ')')

View file

@ -122,7 +122,7 @@ proc storeAux(dest, src: Pointer, mt: PNimType, t: PRawChannel,
# XXX use dynamic type here!
pint[] = mt
storeAux(dest, src, mt.node, t, mode)
of tyTuple, tyPureObject:
of tyTuple:
storeAux(dest, src, mt.node, t, mode)
of tyArray, tyArrayConstr:
for i in 0..(mt.size div mt.base.size)-1:

View file

@ -402,7 +402,7 @@ include "system/hti"
proc isFatPointer(ti: PNimType): bool =
# This has to be consistent with the code generator!
return ti.base.kind notin {tyObject,
tyArray, tyArrayConstr, tyPureObject, tyTuple,
tyArray, tyArrayConstr, tyTuple,
tyOpenArray, tySet, tyVar, tyRef, tyPtr}
proc NimCopy(x: pointer, ti: PNimType): pointer {.compilerproc.}
@ -439,7 +439,7 @@ proc NimCopy(x: pointer, ti: PNimType): pointer =
`result` = {};
for (var key in `x`) { `result`[key] = `x`[key]; }
"""
of tyPureObject, tyTuple, tyObject:
of tyTuple, tyObject:
if ti.base != nil: result = NimCopy(x, ti.base)
elif ti.kind == tyObject:
asm "`result` = {m_type: `ti`};"

View file

@ -10,17 +10,17 @@ macro call(e: expr): expr =
macro dumpAST(n: stmt): stmt =
# dump AST as a side-effect and return the inner node
echo n.prettyPrint
echo n.toLisp
echo n.toYaml
var plusAst = getAst(plus(1, 2))
echo plusAst.prettyPrint
echo plusAst.toLisp
var callAst = getAst(call())
echo callAst.prettyPrint
echo callAst.toLisp
var e = parseExpr("foo(bar + baz)")
echo e.prettyPrint
echo e.toLisp
result = n[1]