diff options
-rw-r--r-- | tests/concepts/tmisc_issues.nim | 19 |
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()) + |