From e1a2bfc048e92319a9cfc0da366bcc1641834e6a Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Wed, 1 Oct 2008 08:38:50 -0500 Subject: [PATCH] Oops --- core/generic/generic-tests.factor | 14 ++++++++++++++ core/generic/generic.factor | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/core/generic/generic-tests.factor b/core/generic/generic-tests.factor index 22c690ffaf..aae76184ff 100755 --- a/core/generic/generic-tests.factor +++ b/core/generic/generic-tests.factor @@ -222,3 +222,17 @@ M: integer a-generic a-word ; M: boii jeah ; "> eval ] unit-test + +! call-next-method cache test +GENERIC: c-n-m-cache ( a -- b ) + +! Force it to be unoptimized +M: fixnum c-n-m-cache { } [ ] like call call-next-method ; +M: integer c-n-m-cache 1 + ; +M: number c-n-m-cache ; + +[ 3 ] [ 2 c-n-m-cache ] unit-test + +[ ] [ [ { integer c-n-m-cache } forget ] with-compilation-unit ] unit-test + +[ 2 ] [ 2 c-n-m-cache ] unit-test diff --git a/core/generic/generic.factor b/core/generic/generic.factor index d25a98c53c..095a8d5dcc 100755 --- a/core/generic/generic.factor +++ b/core/generic/generic.factor @@ -152,8 +152,8 @@ M: method-body forget* ] keep eq? [ [ [ delete-at ] with-methods ] - [ [ delete-at ] with-implementors ] - 2bi + [ [ delete-at ] with-implementors ] 2bi + reset-caches ] [ 2drop ] if ] if ]