From 68dd644233bcc0391cc6dd58cf8e2882478fca89 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Sat, 6 Mar 2010 12:28:09 -0800 Subject: [PATCH] add unit test to show that polymorphic check breaks inference of inline recursive words --- .../row-polymorphism/row-polymorphism-tests.factor | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/basis/stack-checker/row-polymorphism/row-polymorphism-tests.factor b/basis/stack-checker/row-polymorphism/row-polymorphism-tests.factor index ec73ec3b21..a5572336c0 100644 --- a/basis/stack-checker/row-polymorphism/row-polymorphism-tests.factor +++ b/basis/stack-checker/row-polymorphism/row-polymorphism-tests.factor @@ -1,11 +1,13 @@ ! (c)2010 Joe Groff bsd license -USING: effects fry io kernel math namespaces sequences -system tools.test +USING: accessors effects fry io kernel make math namespaces sequences +splitting system tools.test +stack-checker stack-checker.backend stack-checker.errors stack-checker.row-polymorphism stack-checker.state stack-checker.values ; +FROM: splitting.private => split, ; IN: stack-checker.row-polymorphism.tests : infer-polymorphic-quot ( quot -- vars ) @@ -49,6 +51,14 @@ H{ { "a" 0 } { "b" 0 } } [ [ drop ] [ ] if* ] test-poly-infer H{ { "a" 0 } { "b" 1 } } [ [ 1 + ] [ "oops" throw ] if* ] test-poly-infer +H{ } [ [ [ member? ] curry split, ] { } make ] test-poly-infer + +[ (( x x -- x )) ] [ + t infer-polymorphic? [ + [ [ [ member? ] curry split, ] { } make ] infer + ] with-variable +] unit-test + [ [ write write ] each ] poly-infer-must-fail [ [ ] each ] poly-infer-must-fail [ [ dup ] map ] poly-infer-must-fail