]> gitweb.factorcode.org Git - factor.git/commitdiff
Oops
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 1 Oct 2008 13:38:50 +0000 (08:38 -0500)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Wed, 1 Oct 2008 13:38:50 +0000 (08:38 -0500)
core/generic/generic-tests.factor
core/generic/generic.factor

index 22c690ffaf1f185832a75160b7e0fedadc6efaf8..aae76184ff302b0b5b0246d7a96425b92528596e 100755 (executable)
@@ -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
index d25a98c53cab1c57323e8044828d69c3a93b9386..095a8d5dcca8de24f0c89bd26cfaf2c4c6bb7320 100755 (executable)
@@ -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
         ]