fixes #837
This commit is contained in:
parent
5ab3542c18
commit
326bdae8ca
6 changed files with 61 additions and 16 deletions
|
|
@ -1,5 +1,9 @@
|
|||
|
||||
# It turned out that it's hard to generate correct for these two test cases at
|
||||
# the same time.
|
||||
|
||||
type
|
||||
TFoo = ref object of TObject
|
||||
TFoo = ref object of RootObj
|
||||
Data: int
|
||||
TBar = ref object of TFoo
|
||||
nil
|
||||
|
|
@ -26,3 +30,30 @@ var b: TBar2
|
|||
new(b)
|
||||
|
||||
Foo(b)
|
||||
|
||||
# bug #837
|
||||
type
|
||||
PView* = ref TView
|
||||
TView* {.inheritable.} = object
|
||||
data: int
|
||||
|
||||
PWindow* = ref TWindow
|
||||
TWindow* = object of TView
|
||||
data3: int
|
||||
|
||||
PDesktop* = ref TDesktop
|
||||
TDesktop* = object of TView
|
||||
data2: int
|
||||
|
||||
proc makeDesktop(): PDesktop = new(TDesktop)
|
||||
|
||||
proc makeWindow(): PWindow = new(TWindow)
|
||||
|
||||
proc thisCausesError(a: var PView, b: PView) =
|
||||
discard
|
||||
|
||||
var dd = makeDesktop()
|
||||
var aa = makeWindow()
|
||||
|
||||
thisCausesError(dd, aa)
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ discard """
|
|||
import macros
|
||||
|
||||
type
|
||||
TFigure = object of TObject # abstract base class:
|
||||
TFigure = object of RootObj # abstract base class:
|
||||
draw: proc (my: var TFigure) {.nimcall.} # concrete classes implement this
|
||||
|
||||
proc init(f: var TFigure) =
|
||||
|
|
@ -56,7 +56,7 @@ macro `!` (n: expr): stmt {.immediate.} =
|
|||
result.add(n[1]) # obj
|
||||
|
||||
type
|
||||
TSocket* = object of TObject
|
||||
TSocket* = object of RootObj
|
||||
FHost: int # cannot be accessed from the outside of the module
|
||||
# the `F` prefix is a convention to avoid clashes since
|
||||
# the accessors are named `host`
|
||||
|
|
@ -84,6 +84,3 @@ r!draw
|
|||
c!draw()
|
||||
|
||||
#OUT 34[]o 5
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue