27 lines
		
	
	
		
			680 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			680 B
		
	
	
	
		
			Factor
		
	
	
USING: kernel namespaces quotations stack-checker.backend
 | 
						|
stack-checker.branches stack-checker.recursive-state
 | 
						|
stack-checker.state stack-checker.values stack-checker.visitor
 | 
						|
tools.test ;
 | 
						|
IN: stack-checker.branches.tests
 | 
						|
 | 
						|
! infer-branch
 | 
						|
{
 | 
						|
    H{
 | 
						|
        { recursive-state T{ recursive-state } }
 | 
						|
        { current-word f }
 | 
						|
        { (meta-r) f }
 | 
						|
        { input-count 2 }
 | 
						|
        { quotation [ 2drop ] }
 | 
						|
        { literals V{ } }
 | 
						|
        { terminated? f }
 | 
						|
        { stack-visitor f }
 | 
						|
        { (meta-d) V{ } }
 | 
						|
        { inner-d-index 0 }
 | 
						|
    }
 | 
						|
} [
 | 
						|
    init-inference
 | 
						|
    H{ } clone known-values set
 | 
						|
    [ 2drop ] <literal> make-known push-d
 | 
						|
    pop-d known infer-branch
 | 
						|
] unit-test
 |