classes.maybe: this restriction isn't necessary anymore.
							parent
							
								
									1ad06b4e44
								
							
						
					
					
						commit
						ed22ef8ee7
					
				| 
						 | 
				
			
			@ -62,8 +62,5 @@ M: f lol2 drop "lol22" ;
 | 
			
		|||
{ "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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,13 +5,7 @@ classes.algebra.private classes.private classes.union.private
 | 
			
		|||
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
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue