39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
USING: accessors compiler compiler.units tools.test math parser
 | 
						|
kernel sequences sequences.private classes.mixin generic
 | 
						|
definitions arrays words assocs eval strings ;
 | 
						|
IN: compiler.tests.redefine1
 | 
						|
 | 
						|
GENERIC: method-redefine-generic-1 ( a -- b )
 | 
						|
 | 
						|
M: integer method-redefine-generic-1 3 + ;
 | 
						|
 | 
						|
: method-redefine-test-1 ( -- b ) 3 method-redefine-generic-1 ;
 | 
						|
 | 
						|
[ 6 ] [ method-redefine-test-1 ] unit-test
 | 
						|
 | 
						|
[ ] [ "IN: compiler.tests.redefine1 USE: math M: fixnum method-redefine-generic-1 4 + ;" eval( -- ) ] unit-test
 | 
						|
 | 
						|
[ 7 ] [ method-redefine-test-1 ] unit-test
 | 
						|
 | 
						|
[ ] [ [ fixnum \ method-redefine-generic-1 method forget ] with-compilation-unit ] unit-test
 | 
						|
 | 
						|
[ 6 ] [ method-redefine-test-1 ] unit-test
 | 
						|
 | 
						|
GENERIC: method-redefine-generic-2 ( a -- b )
 | 
						|
 | 
						|
M: integer method-redefine-generic-2 3 + ;
 | 
						|
 | 
						|
: method-redefine-test-2 ( -- b ) 3 method-redefine-generic-2 ;
 | 
						|
 | 
						|
[ 6 ] [ method-redefine-test-2 ] unit-test
 | 
						|
 | 
						|
[ ] [ "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
 | 
						|
 | 
						|
[ 7 ] [ method-redefine-test-2 ] unit-test
 | 
						|
 | 
						|
[ ] [
 | 
						|
    [
 | 
						|
        fixnum string [ \ method-redefine-generic-2 method forget ] bi@
 | 
						|
    ] with-compilation-unit
 | 
						|
] unit-test
 |