diff options
author | Araq <rumpf_a@web.de> | 2014-11-21 02:26:49 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-11-21 02:26:49 +0100 |
commit | 326bdae8ca14a981f5ab8c553fbba45e28a36082 (patch) | |
tree | d30e680097fb0476e8a0b1d4a4d74e717b93e284 /tests | |
parent | 5ab3542c1801ba042fbe964245be004c0683abb2 (diff) | |
download | Nim-326bdae8ca14a981f5ab8c553fbba45e28a36082.tar.gz |
fixes #837
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ccgbugs/tcgbug.nim | 1 | ||||
-rw-r--r-- | tests/ccgbugs/tmissingbracket.nim | 2 | ||||
-rw-r--r-- | tests/objects/tobject3.nim | 33 | ||||
-rw-r--r-- | tests/objects/toop1.nim | 7 |
4 files changed, 36 insertions, 7 deletions
diff --git a/tests/ccgbugs/tcgbug.nim b/tests/ccgbugs/tcgbug.nim index 3e4755f2f..92e7b3a66 100644 --- a/tests/ccgbugs/tcgbug.nim +++ b/tests/ccgbugs/tcgbug.nim @@ -35,3 +35,4 @@ type cb: proc (future: PFuture[T]) {.closure.} var k = PFuture[void]() + diff --git a/tests/ccgbugs/tmissingbracket.nim b/tests/ccgbugs/tmissingbracket.nim index ba681ebda..886884d0c 100644 --- a/tests/ccgbugs/tmissingbracket.nim +++ b/tests/ccgbugs/tmissingbracket.nim @@ -34,7 +34,7 @@ proc newInstance(T: typedesc): T = var o = TObj.newInstance() type - TestObj* = object of TObject + TestObj* = object of RootObj t:int SubObject* = object of TestObj diff --git a/tests/objects/tobject3.nim b/tests/objects/tobject3.nim index 935e6ca8c..85cf1cfe3 100644 --- a/tests/objects/tobject3.nim +++ b/tests/objects/tobject3.nim @@ -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) + diff --git a/tests/objects/toop1.nim b/tests/objects/toop1.nim index 350799f51..0d8ba124b 100644 --- a/tests/objects/toop1.nim +++ b/tests/objects/toop1.nim @@ -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 - - - |