From 734f18624cd616a8813e1be8c0c98f0ad990c60c Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Fri, 6 Nov 2009 04:15:46 -0600 Subject: [PATCH] generic.single: simplify stack shuffling --- core/generic/single/single.factor | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/core/generic/single/single.factor b/core/generic/single/single.factor index 5636c336c3..d0bc4e1600 100644 --- a/core/generic/single/single.factor +++ b/core/generic/single/single.factor @@ -63,19 +63,18 @@ TUPLE: predicate-engine class methods ; C: predicate-engine -: push-method ( specializer method atomic assoc -- ) +: push-method ( method class atomic assoc -- ) dupd [ [ ] [ H{ } clone ] ?if [ methods>> set-at ] keep ] change-at ; -: flatten-method ( class method assoc -- ) - [ [ flatten-class keys ] keep ] 2dip [ - [ swap rot ] dip push-method - ] 3curry each ; +: flatten-method ( method class assoc -- ) + over flatten-class keys + [ swap push-method ] with with with each ; : flatten-methods ( assoc -- assoc' ) - H{ } clone [ [ flatten-method ] curry assoc-each ] keep ; + H{ } clone [ [ swapd flatten-method ] curry assoc-each ] keep ; ! 2. Convert methods : split-methods ( assoc class -- first second )