1 ! Copyright (C) 2015 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors classes classes.error classes.tuple
4 compiler.units effects eval generic kernel tools.test words ;
5 IN: classes.error.tests
8 ERROR: error-class-test a b c ;
10 { "( a b c -- * )" } [ \ error-class-test stack-effect effect>string ] unit-test
11 { f } [ \ error-class-test "inline" word-prop ] unit-test
13 [ "IN: classes.error.tests ERROR: error-x ; : error-x 3 ;" eval( -- ) ]
14 [ error>> error>> redefine-error? ] must-fail-with
18 { } [ [ \ error-y dup class? [ forget-class ] [ drop ] if ] with-compilation-unit ] unit-test
20 { } [ "IN: classes.error.tests GENERIC: error-y ( a -- b )" eval( -- ) ] unit-test
22 { f } [ \ error-y tuple-class? ] unit-test
24 { f } [ \ error-y error-class? ] unit-test
26 { t } [ \ error-y generic? ] unit-test
28 { } [ "IN: classes.error.tests ERROR: error-y ;" eval( -- ) ] unit-test
30 { t } [ \ error-y tuple-class? ] unit-test
32 { t } [ \ error-y error-class? ] unit-test
34 { f } [ \ error-y generic? ] unit-test
36 ERROR: base-error x y ;
37 ERROR: derived-error < base-error z ;
39 { ( x y z -- * ) } [ \ derived-error stack-effect ] unit-test