43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
|  | USING: accessors arrays byte-arrays compiler.tree | ||
|  | compiler.tree.propagation.copy compiler.tree.propagation.info | ||
|  | compiler.tree.propagation.slots hashtables kernel math math.intervals | ||
|  | namespaces sequences strings tools.test ;
 | ||
|  | IN: compiler.tree.propagation.slots.tests | ||
|  | 
 | ||
|  | : indexize ( seq -- assoc )
 | ||
|  |     [ swap 2array ] map-index ;
 | ||
|  | 
 | ||
|  | : setup-value-infos ( value-infos -- )
 | ||
|  |     indexize >hashtable 1array value-infos set
 | ||
|  |     H{ { 0 0 } { 1 1 } { 2 2 } } copies set ;
 | ||
|  | 
 | ||
|  | { t } [ | ||
|  |     \ <array> sequence-constructor? | ||
|  | ] unit-test | ||
|  | 
 | ||
|  | { | ||
|  |     T{ value-info-state | ||
|  |        { class array } | ||
|  |        { interval full-interval } | ||
|  |        { slots | ||
|  |          { | ||
|  |              T{ value-info-state | ||
|  |                 { class fixnum } | ||
|  |                 { interval | ||
|  |                   T{ interval | ||
|  |                      { from { 7 t } } | ||
|  |                      { to { 7 t } } | ||
|  |                   } | ||
|  |                 } | ||
|  |                 { literal 7 } | ||
|  |                 { literal? t } | ||
|  |              } | ||
|  |          } | ||
|  |        } | ||
|  |     } | ||
|  | } [ | ||
|  |     { 7 f } [ <literal-info> ] map setup-value-infos | ||
|  |     { 0 1 } { 2 } \ <array> <#call> dup word>> | ||
|  |     propagate-sequence-constructor first
 | ||
|  | ] unit-test |