parent
a0b547001b
commit
e2c2ae8e7e
3 changed files with 9 additions and 1 deletions
|
|
@ -2044,6 +2044,7 @@ proc upConv(p: BProc, n: PNode, d: var TLoc) =
|
||||||
if t.kind notin {tyVar, tyLent} or not p.module.compileToCpp:
|
if t.kind notin {tyVar, tyLent} or not p.module.compileToCpp:
|
||||||
r = "(*$1)" % [r]
|
r = "(*$1)" % [r]
|
||||||
t = skipTypes(t.lastSon, abstractInst)
|
t = skipTypes(t.lastSon, abstractInst)
|
||||||
|
discard getTypeDesc(p.module, t)
|
||||||
if not p.module.compileToCpp:
|
if not p.module.compileToCpp:
|
||||||
while t.kind == tyObject and t.sons[0] != nil:
|
while t.kind == tyObject and t.sons[0] != nil:
|
||||||
add(r, ".Sup")
|
add(r, ".Sup")
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
type
|
type
|
||||||
MyRefObject* = ref object
|
MyRefObject* = ref object
|
||||||
s: string
|
s: string
|
||||||
|
|
||||||
|
BaseObj* = ref object of RootObj
|
||||||
|
ChildObj* = ref object of BaseObj
|
||||||
|
|
||||||
proc newMyRefObject*(s: string): MyRefObject =
|
proc newMyRefObject*(s: string): MyRefObject =
|
||||||
new(result)
|
new(result)
|
||||||
|
|
|
||||||
|
|
@ -27,3 +27,8 @@ proc f(foo: ptr Foo, foo2: ptr Foo2): cint =
|
||||||
if foo2 != nil: {.emit: [result, " = ", foo2[], ".b;"].}
|
if foo2 != nil: {.emit: [result, " = ", foo2[], ".b;"].}
|
||||||
|
|
||||||
discard f(nil, nil)
|
discard f(nil, nil)
|
||||||
|
|
||||||
|
|
||||||
|
# bug #7392
|
||||||
|
var x1: BaseObj
|
||||||
|
var x2 = ChildObj(x1)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue