diff --git a/basis/compiler/tests/folding.factor b/basis/compiler/tests/folding.factor new file mode 100644 index 0000000000..d6868fd034 --- /dev/null +++ b/basis/compiler/tests/folding.factor @@ -0,0 +1,30 @@ +USING: eval tools.test compiler.units vocabs multiline words +kernel classes.mixin arrays ; +IN: compiler.tests + +! Calls to generic words were not folded away. + +[ ] [ [ "compiler.tests.redefine11" forget-vocab ] with-compilation-unit ] unit-test + +[ ] [ + <" + USING: math arrays ; + IN: compiler.tests.folding + GENERIC: foldable-generic ( a -- b ) foldable + M: integer foldable-generic f ; + "> eval +] unit-test + +[ ] [ + <" + USING: math arrays ; + IN: compiler.tests.folding + : fold-test ( -- x ) 10 foldable-generic ; + "> eval +] unit-test + +[ t ] [ + "fold-test" "compiler.tests.folding" lookup execute + "fold-test" "compiler.tests.folding" lookup execute + eq? +] unit-test