Adds idetools testcase for dynamic dispatch. Refs #477.
This commit is contained in:
parent
b0ba4caf64
commit
fe18117fb2
3 changed files with 25 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -171,6 +171,7 @@ examples/cross_calculator/android/tags
|
||||||
/tests/caas/imported
|
/tests/caas/imported
|
||||||
/tests/caas/issue_416_template_shift
|
/tests/caas/issue_416_template_shift
|
||||||
/tests/caas/issue_452_export_shift
|
/tests/caas/issue_452_export_shift
|
||||||
|
/tests/caas/issue_477_dynamic_dispatch
|
||||||
/tests/caas/main
|
/tests/caas/main
|
||||||
/tests/caasdriver
|
/tests/caasdriver
|
||||||
/tools/nimgrep
|
/tools/nimgrep
|
||||||
|
|
|
||||||
19
tests/caas/issue_477_dynamic_dispatch.nim
Normal file
19
tests/caas/issue_477_dynamic_dispatch.nim
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
type
|
||||||
|
TThing = object of TObject
|
||||||
|
TUnit = object of TThing
|
||||||
|
x: int
|
||||||
|
|
||||||
|
method collide(a, b: TThing) {.inline.} =
|
||||||
|
quit "to override!"
|
||||||
|
|
||||||
|
method collide(a: TThing, b: TUnit) {.inline.} =
|
||||||
|
echo "collide1"
|
||||||
|
|
||||||
|
method collide(a: TUnit, b: TThing) {.inline.} =
|
||||||
|
echo "collide2"
|
||||||
|
|
||||||
|
var
|
||||||
|
a, b: TUnit
|
||||||
|
|
||||||
|
when isMainModule:
|
||||||
|
collide(a, b) # output: 2
|
||||||
5
tests/caas/issue_477_dynamic_dispatch.txt
Normal file
5
tests/caas/issue_477_dynamic_dispatch.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
issue_477_dynamic_dispatch.nim
|
||||||
|
> c --run
|
||||||
|
SuccessX
|
||||||
|
> idetools --track:issue_477_dynamic_dispatch.nim,19,5 --def
|
||||||
|
def\tskMethod\tissue_477_dynamic_dispatch.collide\tproc \(TUnit, TThing\)\{.inline.\}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue