getTypeImpl now returns pragmas for object types (#9538)
This commit is contained in:
parent
e377c55c10
commit
69c0a9c6fb
2 changed files with 25 additions and 9 deletions
|
|
@ -82,12 +82,9 @@ proc mapTypeToAstX(cache: IdentCache; t: PType; info: TLineInfo;
|
|||
id
|
||||
template newIdentDefs(s): untyped = newIdentDefs(s, s.typ)
|
||||
|
||||
if inst:
|
||||
if t.sym != nil: # if this node has a symbol
|
||||
if not allowRecursion: # getTypeInst behavior: return symbol
|
||||
return atomicType(t.sym)
|
||||
#else: # getTypeImpl behavior: turn off recursion
|
||||
# allowRecursion = false
|
||||
if inst and not allowRecursion and t.sym != nil:
|
||||
# getTypeInst behavior: return symbol
|
||||
return atomicType(t.sym)
|
||||
|
||||
case t.kind
|
||||
of tyNone: result = atomicType("none", mNone)
|
||||
|
|
@ -160,9 +157,10 @@ proc mapTypeToAstX(cache: IdentCache; t: PType; info: TLineInfo;
|
|||
of tyObject:
|
||||
if inst:
|
||||
result = newNodeX(nkObjectTy)
|
||||
result.add newNodeI(nkEmpty, info) # pragmas not reconstructed yet
|
||||
if t.sons[0] == nil: result.add newNodeI(nkEmpty, info) # handle parent object
|
||||
else:
|
||||
result.add t.sym.ast[2][0].copyTree # copy object pragmas
|
||||
if t.sons[0] == nil:
|
||||
result.add newNodeI(nkEmpty, info)
|
||||
else: # handle parent object
|
||||
var nn = newNodeX(nkOfInherit)
|
||||
nn.add mapTypeToAst(t.sons[0], info)
|
||||
result.add nn
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue