diff --git a/basis/compiler/tree/cleanup/cleanup-tests.factor b/basis/compiler/tree/cleanup/cleanup-tests.factor index b3ba62b73b..b77a27800f 100644 --- a/basis/compiler/tree/cleanup/cleanup-tests.factor +++ b/basis/compiler/tree/cleanup/cleanup-tests.factor @@ -5,7 +5,7 @@ strings sbufs sequences.private slots.private combinators definitions system layouts vectors math.partial-dispatch math.order math.functions accessors hashtables classes assocs io.encodings.utf8 io.encodings.ascii io.encodings fry slots -sorting.private +sorting.private combinators.short-circuit compiler.tree compiler.tree.combinators compiler.tree.cleanup @@ -13,6 +13,7 @@ compiler.tree.builder compiler.tree.recursive compiler.tree.normalization compiler.tree.propagation +compiler.tree.propagation.info compiler.tree.checker compiler.tree.debugger ; @@ -494,3 +495,8 @@ cell-bits 32 = [ [ t ] [ [ hashtable new ] \ new inlined? ] unit-test + +[ t ] [ + [ { array-capacity } declare 1 fixnum+ ] cleaned-up-tree + [ { [ #call? ] [ node-input-infos second literal>> 1 = ] } 1&& ] contains? +] unit-test diff --git a/basis/compiler/tree/cleanup/cleanup.factor b/basis/compiler/tree/cleanup/cleanup.factor index caf2a36925..4ca058b2e3 100644 --- a/basis/compiler/tree/cleanup/cleanup.factor +++ b/basis/compiler/tree/cleanup/cleanup.factor @@ -78,7 +78,7 @@ GENERIC: cleanup* ( node -- node/nodes ) } cond ; : remove-overflow-check ( #call -- #call ) - [ in-d>> ] [ out-d>> ] [ word>> no-overflow-variant ] tri #call cleanup* ; + [ no-overflow-variant ] change-word cleanup* ; M: #call cleanup* {