This commit is contained in:
Araq 2013-08-31 11:49:33 +02:00
commit b40ab4dc9e
3 changed files with 34 additions and 4 deletions

View file

@ -775,9 +775,12 @@ proc typeSectionFinalPass(c: PContext, n: PNode) =
if aa.kind in {nkRefTy, nkPtrTy} and aa.len == 1 and
aa.sons[0].kind == nkObjectTy:
# give anonymous object a dummy symbol:
assert s.typ.sons[0].sym == nil
s.typ.sons[0].sym = newSym(skType, getIdent(s.name.s & ":ObjectType"),
getCurrOwner(), s.info)
var st = s.typ
if st.kind == tyGenericBody: st = st.lastSon
InternalAssert st.kind in {tyPtr, tyRef}
InternalAssert st.sons[0].sym == nil
st.sons[0].sym = newSym(skType, getIdent(s.name.s & ":ObjectType"),
getCurrOwner(), s.info)
proc SemTypeSection(c: PContext, n: PNode): PNode =
typeSectionLeftSidePass(c, n)