From bec7f9398fe3b90089d4ffb8f0da5ec8574a891d Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Fri, 24 Mar 2017 16:07:17 +0200 Subject: [PATCH] close #2882 --- tests/concepts/tmisc_issues.nim | 34 ++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/tests/concepts/tmisc_issues.nim b/tests/concepts/tmisc_issues.nim index 233739580e..10e0725217 100644 --- a/tests/concepts/tmisc_issues.nim +++ b/tests/concepts/tmisc_issues.nim @@ -6,7 +6,10 @@ true p has been called. p has been called. implicit generic -generic''' +generic +false +true +-1''' """ # https://github.com/nim-lang/Nim/issues/1147 @@ -66,3 +69,32 @@ c1(@[1]) proc c2[T](x: Container[T]) = echo "generic" c2(@[1]) +# https://github.com/nim-lang/Nim/issues/2882 +type + Paper = object + name: string + + Bendable = concept x + bend(x is Bendable) + +proc bend(p: Paper): Paper = Paper(name: "bent-" & p.name) + +var paper = Paper(name: "red") +echo paper is Bendable + +type + A = concept self + size(self) is int + + B = object + +proc size(self: B): int = + return -1 + +proc size(self: A): int = + return 0 + +let b = B() +echo b is A +echo b.size() +