summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--tests/concepts/tmisc_issues.nim19
1 files changed, 17 insertions, 2 deletions
diff --git a/tests/concepts/tmisc_issues.nim b/tests/concepts/tmisc_issues.nim
index 556e0b9f5..5fc4e2116 100644
--- a/tests/concepts/tmisc_issues.nim
+++ b/tests/concepts/tmisc_issues.nim
@@ -2,7 +2,9 @@ discard """
 output: '''true
 true
 true
-true'''
+true
+p has been called.
+p has been called.'''
 """
 
 # https://github.com/nim-lang/Nim/issues/1147
@@ -15,7 +17,7 @@ proc add*(self: var TTest, val: int) =
 type CAddable = concept x
   x[].add(int)
 
-echo((ref TTest) is CAddable)
+echo((ref TTest) is CAddable) # true
 
 # https://github.com/nim-lang/Nim/issues/1570
 type ConcretePointOfFloat = object
@@ -34,3 +36,16 @@ echo p1 is AbstractPointOfFloat      # true
 echo p2 is AbstractPointOfFloat      # true
 echo p2.x is float and p2.y is float # true
 
+# https://github.com/nim-lang/Nim/issues/2018
+type ProtocolFollower = generic
+  true # not a particularly involved protocol
+
+type ImplementorA = object
+type ImplementorB = object
+
+proc p[A: ProtocolFollower, B: ProtocolFollower](a: A, b: B) =
+  echo "p has been called."
+
+p(ImplementorA(), ImplementorA())
+p(ImplementorA(), ImplementorB())
+