From 943f0ee10f469acc9f487f8591d6c99e59e925fc Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 15 Mar 2009 18:33:29 -0500 Subject: [PATCH] Add test cases for problem with moving mixin instances and methods between vocabularies --- core/classes/mixin/mixin-tests.factor | 10 ++++++++++ core/generic/generic-tests.factor | 14 +++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/core/classes/mixin/mixin-tests.factor b/core/classes/mixin/mixin-tests.factor index 9a372e633e..376eace4ed 100644 --- a/core/classes/mixin/mixin-tests.factor +++ b/core/classes/mixin/mixin-tests.factor @@ -109,3 +109,13 @@ TUPLE: flat-mx-2-1 ; INSTANCE: flat-mx-2-1 flat-mx-2 MIXIN: empty-mixin [ f ] [ "hi" empty-mixin? ] unit-test + +MIXIN: move-instance-declaration-mixin + +[ ] [ "IN: classes.mixin.tests.a USE: strings USE: classes.mixin.tests INSTANCE: string move-instance-declaration-mixin" "move-mixin-test-1" parse-stream drop ] unit-test + +[ ] [ "IN: classes.mixin.tests.b USE: strings USE: classes.mixin.tests INSTANCE: string move-instance-declaration-mixin" "move-mixin-test-2" parse-stream drop ] unit-test + +[ ] [ "IN: classes.mixin.tests.a" "move-mixin-test-1" parse-stream drop ] unit-test + +[ { string } ] [ move-instance-declaration-mixin members ] unit-test \ No newline at end of file diff --git a/core/generic/generic-tests.factor b/core/generic/generic-tests.factor index 5465ee1b27..db404f4850 100755 --- a/core/generic/generic-tests.factor +++ b/core/generic/generic-tests.factor @@ -2,7 +2,8 @@ USING: accessors alien arrays definitions generic generic.standard generic.math assocs hashtables io kernel math namespaces parser prettyprint sequences strings tools.test vectors words quotations classes classes.algebra classes.tuple continuations -layouts classes.union sorting compiler.units eval multiline ; +layouts classes.union sorting compiler.units eval multiline +io.streams.string ; IN: generic.tests GENERIC: foobar ( x -- y ) @@ -236,3 +237,14 @@ M: number c-n-m-cache ; [ ] [ [ { integer c-n-m-cache } forget ] with-compilation-unit ] unit-test [ 2 ] [ 2 c-n-m-cache ] unit-test + +! Moving a method from one vocab to another doesn't always work +GENERIC: move-method-generic ( a -- b ) + +[ ] [ "IN: generic.tests.a USE: strings USE: generic.tests M: string move-method-generic ;" "move-method-test-1" parse-stream drop ] unit-test + +[ ] [ "IN: generic.tests.b USE: strings USE: generic.tests M: string move-method-generic ;" "move-method-test-2" parse-stream drop ] unit-test + +[ ] [ "IN: generic.tests.a" "move-method-test-1" parse-stream drop ] unit-test + +[ { string } ] [ move-method-generic order ] unit-test \ No newline at end of file