{ "lol22" } [ f lol2 ] unit-test
[ 3 lol2 ] [ no-method? ] must-fail-with
-{ t } [ \ + <maybe> classoid? ] unit-test
-{ f } [ \ + <maybe> valid-classoid? ] unit-test
-
[ "IN: classes-tests maybe{ 1 2 3 }" eval( -- ) ]
[ error>> not-classoids? ] must-fail-with
kernel words ;
IN: classes.maybe
-! The class slot has to be a union of a word and a classoid
-! for TUPLE: foo { a maybe{ foo } } ; and maybe{ union{ integer float } }
-! to work.
-! In the first case, foo is not yet a tuple-class when maybe{ is reached,
-! thus it's not a classoid yet. union{ is a classoid, so the second case works.
-! words are not generally classoids, so classoid alone is insufficient.
-TUPLE: maybe { class union{ word classoid } initial: object read-only } ;
+TUPLE: maybe { class classoid initial: object read-only } ;
C: <maybe> maybe