]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/tests/redefine1.factor
Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup...
[factor.git] / basis / compiler / tests / redefine1.factor
1 USING: accessors compiler compiler.units tools.test math parser
2 kernel sequences sequences.private classes.mixin generic
3 definitions arrays words assocs eval strings ;
4 IN: compiler.tests.redefine1
5
6 GENERIC: method-redefine-generic-1 ( a -- b )
7
8 M: integer method-redefine-generic-1 3 + ;
9
10 : method-redefine-test-1 ( -- b ) 3 method-redefine-generic-1 ;
11
12 [ 6 ] [ method-redefine-test-1 ] unit-test
13
14 [ ] [ "IN: compiler.tests.redefine1 USE: math M: fixnum method-redefine-generic-1 4 + ;" eval( -- ) ] unit-test
15
16 [ 7 ] [ method-redefine-test-1 ] unit-test
17
18 [ ] [ [ fixnum \ method-redefine-generic-1 lookup-method forget ] with-compilation-unit ] unit-test
19
20 [ 6 ] [ method-redefine-test-1 ] unit-test
21
22 GENERIC: method-redefine-generic-2 ( a -- b )
23
24 M: integer method-redefine-generic-2 3 + ;
25
26 : method-redefine-test-2 ( -- b ) 3 method-redefine-generic-2 ;
27
28 [ 6 ] [ method-redefine-test-2 ] unit-test
29
30 [ ] [ "IN: compiler.tests.redefine1 USE: kernel USE: math M: fixnum method-redefine-generic-2 4 + ; USE: strings M: string method-redefine-generic-2 drop f ;" eval( -- ) ] unit-test
31
32 [ 7 ] [ method-redefine-test-2 ] unit-test
33
34 [ ] [
35     [
36         fixnum string [ \ method-redefine-generic-2 lookup-method forget ] bi@
37     ] with-compilation-unit
38 ] unit-test