summary refs log tree commit diff stats
path: root/tests/cpp/tmember.nim
diff options
context:
space:
mode:
authorJuan M Gómez <info@jmgomez.me>2023-08-10 13:15:23 +0100
committerGitHub <noreply@github.com>2023-08-10 14:15:23 +0200
commit8625e712503bb36e29ed24a28d484fe7d5af05fa (patch)
tree381deff8f67846dff74552d9d86affb0f2df9286 /tests/cpp/tmember.nim
parent05f7c4f79db096581352cbe20666f82300d21580 (diff)
downloadNim-8625e712503bb36e29ed24a28d484fe7d5af05fa.tar.gz
adds support for functor in member (#22433)
* adds support for functor in member

* improves functor test
Diffstat (limited to 'tests/cpp/tmember.nim')
-rw-r--r--tests/cpp/tmember.nim11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/cpp/tmember.nim b/tests/cpp/tmember.nim
index 3f498c722..07bd5e0ee 100644
--- a/tests/cpp/tmember.nim
+++ b/tests/cpp/tmember.nim
@@ -7,6 +7,7 @@ false
 hello foo
 hello boo
 hello boo
+FunctorSupport!
 destructing
 destructing
 '''
@@ -51,3 +52,13 @@ let booAsFoo = cast[FooPtr](newCpp[Boo]())
 foo.salute()
 boo.salute()
 booAsFoo.salute()
+
+type
+  NimFunctor = object
+    discard
+proc invoke(f: NimFunctor, n:int) {.member:"operator ()('2 #2)" .} = 
+  echo "FunctorSupport!"
+
+{.experimental: "callOperator".}
+proc `()`(f: NimFunctor, n:int) {.importcpp:"#(@)" .} 
+NimFunctor()(1)