fix object /\\ number
parent
7101e12b33
commit
74b063e3ad
|
@ -162,6 +162,9 @@ SYMBOL: object
|
|||
: type-union ( list list -- list )
|
||||
append prune [ > ] sort ;
|
||||
|
||||
: type-intersection ( list list -- list )
|
||||
intersection [ > ] sort ;
|
||||
|
||||
: class-or ( class class -- class )
|
||||
#! Return a class that both classes are subclasses of.
|
||||
swap builtin-supertypes
|
||||
|
@ -173,7 +176,7 @@ SYMBOL: object
|
|||
#! error if this is impossible.
|
||||
over builtin-supertypes
|
||||
over builtin-supertypes
|
||||
intersection dup [
|
||||
type-intersection dup [
|
||||
nip nip classes get hash [ object ] unless*
|
||||
] [
|
||||
drop [
|
||||
|
@ -187,4 +190,4 @@ SYMBOL: object
|
|||
dup builtin-supertypes [ > ] sort
|
||||
classes get set-hash ;
|
||||
|
||||
global [ <namespace> classes set ] bind
|
||||
global [ classes get [ <namespace> classes set ] unless ] bind
|
||||
|
|
|
@ -37,7 +37,6 @@ USE: strings
|
|||
USE: vectors
|
||||
USE: words
|
||||
USE: hashtables
|
||||
USE: prettyprint
|
||||
|
||||
: with-dataflow ( param op [ in | out ] quot -- )
|
||||
#! Take input parameters, execute quotation, take output
|
||||
|
|
|
@ -136,3 +136,5 @@ M: very-funny gooey sq ;
|
|||
[ integer ] [ fixnum bignum class-or ] unit-test
|
||||
[ integer ] [ fixnum integer class-or ] unit-test
|
||||
[ rational ] [ ratio integer class-or ] unit-test
|
||||
[ number ] [ number object class-and ] unit-test
|
||||
[ number ] [ object number class-and ] unit-test
|
||||
|
|
|
@ -203,3 +203,4 @@ SYMBOL: sym-test
|
|||
[ [ [ cons ] [ cons ] ] ] [ [ uncons cons ] infer ] unit-test
|
||||
[ [ [ object ] [ object ] ] ] [ [ dup [ car ] when ] infer ] unit-test
|
||||
[ [ [ vector ] [ vector ] ] ] [ [ vector-clone ] infer ] unit-test
|
||||
[ [ [ number ] [ number ] ] ] [ [ dup + ] infer ] unit-test
|
||||
|
|
Loading…
Reference in New Issue