Fix class< bug
							parent
							
								
									d7763d6b71
								
							
						
					
					
						commit
						3b795b6a07
					
				| 
						 | 
					@ -4,7 +4,7 @@ kernel math namespaces parser prettyprint sequences strings
 | 
				
			||||||
tools.test vectors words quotations classes classes.algebra
 | 
					tools.test vectors words quotations classes classes.algebra
 | 
				
			||||||
classes.private classes.union classes.mixin classes.predicate
 | 
					classes.private classes.union classes.mixin classes.predicate
 | 
				
			||||||
vectors definitions source-files compiler.units growable
 | 
					vectors definitions source-files compiler.units growable
 | 
				
			||||||
random inference effects kernel.private ;
 | 
					random inference effects kernel.private sbufs ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: class= [ class< ] 2keep swap class< and ;
 | 
					: class= [ class< ] 2keep swap class< and ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -144,6 +144,48 @@ UNION: z1 b1 c1 ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ f ] [ null class-not null class= ] unit-test
 | 
					[ f ] [ null class-not null class= ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ t ] [
 | 
				
			||||||
 | 
					    fixnum class-not
 | 
				
			||||||
 | 
					    fixnum fixnum class-not class-or
 | 
				
			||||||
 | 
					    class<
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					! Test method inlining
 | 
				
			||||||
 | 
					[ f ] [ fixnum { } min-class ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ string ] [
 | 
				
			||||||
 | 
					    \ string
 | 
				
			||||||
 | 
					    [ integer string array reversed sbuf
 | 
				
			||||||
 | 
					    slice vector quotation ]
 | 
				
			||||||
 | 
					    sort-classes min-class
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ fixnum ] [
 | 
				
			||||||
 | 
					    \ fixnum
 | 
				
			||||||
 | 
					    [ fixnum integer object ]
 | 
				
			||||||
 | 
					    sort-classes min-class
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ integer ] [
 | 
				
			||||||
 | 
					    \ fixnum
 | 
				
			||||||
 | 
					    [ integer float object ]
 | 
				
			||||||
 | 
					    sort-classes min-class
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ object ] [
 | 
				
			||||||
 | 
					    \ word
 | 
				
			||||||
 | 
					    [ integer float object ]
 | 
				
			||||||
 | 
					    sort-classes min-class
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ reversed ] [
 | 
				
			||||||
 | 
					    \ reversed
 | 
				
			||||||
 | 
					    [ integer reversed slice ]
 | 
				
			||||||
 | 
					    sort-classes min-class
 | 
				
			||||||
 | 
					] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ f ] [ null { number fixnum null } min-class ] unit-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
! Test for hangs?
 | 
					! Test for hangs?
 | 
				
			||||||
: random-class classes random ;
 | 
					: random-class classes random ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,10 +77,10 @@ C: <anonymous-complement> anonymous-complement
 | 
				
			||||||
        { [ 2dup [ anonymous-complement? ] both? ] [ anonymous-complement< ] }
 | 
					        { [ 2dup [ anonymous-complement? ] both? ] [ anonymous-complement< ] }
 | 
				
			||||||
        { [ over anonymous-union? ] [ left-anonymous-union< ] }
 | 
					        { [ over anonymous-union? ] [ left-anonymous-union< ] }
 | 
				
			||||||
        { [ over anonymous-intersection? ] [ left-anonymous-intersection< ] }
 | 
					        { [ over anonymous-intersection? ] [ left-anonymous-intersection< ] }
 | 
				
			||||||
        { [ over anonymous-complement? ] [ 2drop f ] }
 | 
					 | 
				
			||||||
        { [ over members ] [ left-union-class< ] }
 | 
					        { [ over members ] [ left-union-class< ] }
 | 
				
			||||||
        { [ dup anonymous-union? ] [ right-anonymous-union< ] }
 | 
					        { [ dup anonymous-union? ] [ right-anonymous-union< ] }
 | 
				
			||||||
        { [ dup anonymous-intersection? ] [ right-anonymous-intersection< ] }
 | 
					        { [ dup anonymous-intersection? ] [ right-anonymous-intersection< ] }
 | 
				
			||||||
 | 
					        { [ over anonymous-complement? ] [ 2drop f ] }
 | 
				
			||||||
        { [ dup anonymous-complement? ] [ class>> classes-intersect? not ] }
 | 
					        { [ dup anonymous-complement? ] [ class>> classes-intersect? not ] }
 | 
				
			||||||
        { [ dup members ] [ right-union-class< ] }
 | 
					        { [ dup members ] [ right-union-class< ] }
 | 
				
			||||||
        { [ over superclass ] [ superclass< ] }
 | 
					        { [ over superclass ] [ superclass< ] }
 | 
				
			||||||
| 
						 | 
					@ -193,9 +193,8 @@ C: <anonymous-complement> anonymous-complement
 | 
				
			||||||
    [ ] unfold nip ;
 | 
					    [ ] unfold nip ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: min-class ( class seq -- class/f )
 | 
					: min-class ( class seq -- class/f )
 | 
				
			||||||
    [ dupd classes-intersect? ] subset dup empty? [
 | 
					    over [ classes-intersect? ] curry subset
 | 
				
			||||||
        2drop f
 | 
					    dup empty? [ 2drop f ] [
 | 
				
			||||||
    ] [
 | 
					 | 
				
			||||||
        tuck [ class< ] with all? [ peek ] [ drop f ] if
 | 
					        tuck [ class< ] with all? [ peek ] [ drop f ] if
 | 
				
			||||||
    ] if ;
 | 
					    ] if ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue