add unit test to show that polymorphic check breaks inference of inline recursive words
							parent
							
								
									17df15280e
								
							
						
					
					
						commit
						68dd644233
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue