diff --git a/.gitignore b/.gitignore index dc63ebb4c9..eb2e27e9e8 100644 --- a/.gitignore +++ b/.gitignore @@ -171,6 +171,7 @@ examples/cross_calculator/android/tags /tests/caas/imported /tests/caas/issue_416_template_shift /tests/caas/issue_452_export_shift +/tests/caas/issue_477_dynamic_dispatch /tests/caas/main /tests/caasdriver /tools/nimgrep diff --git a/tests/caas/issue_477_dynamic_dispatch.nim b/tests/caas/issue_477_dynamic_dispatch.nim new file mode 100644 index 0000000000..6e6b21ef0f --- /dev/null +++ b/tests/caas/issue_477_dynamic_dispatch.nim @@ -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 diff --git a/tests/caas/issue_477_dynamic_dispatch.txt b/tests/caas/issue_477_dynamic_dispatch.txt new file mode 100644 index 0000000000..068a9d022b --- /dev/null +++ b/tests/caas/issue_477_dynamic_dispatch.txt @@ -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.\}