summary refs log tree commit diff stats
path: root/tests/overload/tprefer_specialized_generic.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-03-09 15:02:28 +0100
committerAraq <rumpf_a@web.de>2015-03-10 12:32:46 +0100
commit1efb5174f26caeebafe1b5ea9487690c5ffe1adb (patch)
tree90b292c6f6b2c45b24b26b9202fc9e13d0035298 /tests/overload/tprefer_specialized_generic.nim
parent3ea3aa633d92e9a9c3f4668727c194cfae3ce7c4 (diff)
downloadNim-1efb5174f26caeebafe1b5ea9487690c5ffe1adb.tar.gz
fixes #2220; #2219; breaks #2022; for #2022 callsite needs to be used
Diffstat (limited to 'tests/overload/tprefer_specialized_generic.nim')
-rw-r--r--tests/overload/tprefer_specialized_generic.nim22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/overload/tprefer_specialized_generic.nim b/tests/overload/tprefer_specialized_generic.nim
new file mode 100644
index 000000000..2b41502d1
--- /dev/null
+++ b/tests/overload/tprefer_specialized_generic.nim
@@ -0,0 +1,22 @@
+discard """
+  output: '''ref ref T ptr S'''
+"""
+
+proc foo[T](x: T) =
+  echo "only T"
+
+proc foo[T](x: ref T) =
+  echo "ref T"
+
+proc foo[T, S](x: ref ref T; y: ptr S) =
+  echo "ref ref T ptr S"
+
+proc foo[T, S](x: ref T; y: ptr S) =
+  echo "ref T ptr S"
+
+proc foo[T](x: ref T; default = 0) =
+  echo "ref T; default"
+
+var x: ref ref int
+var y: ptr ptr int
+foo(x, y)