factor/basis/compiler/tree/propagation/slots/slots-tests.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