classes.maybe: move maybe definition from classes.union to classes.maybe

db4
Doug Coleman 2011-11-22 02:44:58 -08:00
parent fad4a28d70
commit fac17c10ba
11 changed files with 45 additions and 38 deletions

View File

@ -1,4 +1,4 @@
USING: accessors classes.tuple classes.union compiler.units USING: accessors classes.tuple classes.maybe compiler.units
kernel math slots tools.test ; kernel math slots tools.test ;
IN: compiler.tests.redefine26 IN: compiler.tests.redefine26

View File

@ -5,7 +5,7 @@ words namespaces classes.algebra combinators
combinators.short-circuit classes classes.tuple combinators.short-circuit classes classes.tuple
classes.tuple.private continuations arrays alien.c-types math classes.tuple.private continuations arrays alien.c-types math
math.private slots generic definitions stack-checker.dependencies math.private slots generic definitions stack-checker.dependencies
classes.union classes.algebra.private classes.maybe classes.algebra.private
compiler.tree compiler.tree
compiler.tree.propagation.info compiler.tree.propagation.info
compiler.tree.propagation.nodes compiler.tree.propagation.nodes

View File

@ -7,7 +7,7 @@ io.pathnames io.styles kernel make math math.order math.parser
namespaces prettyprint.config prettyprint.custom namespaces prettyprint.config prettyprint.custom
prettyprint.sections prettyprint.stylesheet quotations sbufs prettyprint.sections prettyprint.stylesheet quotations sbufs
sequences strings vectors words words.symbol hash-sets sequences strings vectors words words.symbol hash-sets
classes.union ; classes.maybe ;
FROM: sets => members ; FROM: sets => members ;
IN: prettyprint.backend IN: prettyprint.backend

View File

@ -4,7 +4,7 @@ prettyprint.sections sequences tools.test vectors words
effects splitting generic.standard prettyprint.private effects splitting generic.standard prettyprint.private
continuations generic compiler.units tools.continuations continuations generic compiler.units tools.continuations
tools.continuations.private eval accessors make vocabs.parser see tools.continuations.private eval accessors make vocabs.parser see
listener classes.union ; listener classes.maybe ;
IN: prettyprint.tests IN: prettyprint.tests
[ "4" ] [ 4 unparse ] unit-test [ "4" ] [ 4 unparse ] unit-test

View File

@ -4,7 +4,7 @@ combinators.short-circuit definitions effects fry hints
math kernel kernel.private namespaces parser quotations math kernel kernel.private namespaces parser quotations
sequences slots words locals effects.parser sequences slots words locals effects.parser
locals.parser macros stack-checker.dependencies locals.parser macros stack-checker.dependencies
classes.union ; classes.maybe ;
FROM: classes.tuple.private => tuple-layout ; FROM: classes.tuple.private => tuple-layout ;
IN: typed IN: typed

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1,32 @@
! Copyright (C) 2011 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors classes classes.algebra
classes.algebra.private classes.private effects generic
kernel sequences words classes.union classes.union.private ;
IN: classes.maybe
TUPLE: maybe { class word initial: object read-only } ;
C: <maybe> maybe
M: maybe instance?
over [ class>> instance? ] [ 2drop t ] if ;
M: maybe normalize-class
class>> \ f class-or ;
M: maybe classoid? drop t ;
M: maybe rank-class drop 6 ;
M: maybe (flatten-class)
class>> (flatten-class) ;
M: maybe effect>type ;
M: maybe method-word-name
[ class>> name>> ] [ name>> ] bi* "=>" glue ;
M: maybe union-of-builtins?
class>> union-of-builtins? ;

View File

@ -1,33 +1,14 @@
! Copyright (C) 2004, 2011 Slava Pestov. ! Copyright (C) 2004, 2011 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: words sequences kernel assocs combinators classes USING: accessors assocs classes classes.algebra
classes.private classes.algebra classes.algebra.private classes.algebra.private classes.builtin
classes.builtin kernel.private math.private namespaces arrays classes.private combinators definitions kernel kernel.private
math quotations definitions accessors parser effects ; math math.private quotations sequences words vocabs ;
IN: classes.union IN: classes.union
PREDICATE: union-class < class PREDICATE: union-class < class
"metaclass" word-prop union-class eq? ; "metaclass" word-prop union-class eq? ;
TUPLE: maybe { class word initial: object read-only } ;
C: <maybe> maybe
M: maybe instance?
over [ class>> instance? ] [ 2drop t ] if ;
M: maybe normalize-class
class>> \ f class-or ;
M: maybe classoid? drop t ;
M: maybe rank-class drop 6 ;
M: maybe (flatten-class)
class>> (flatten-class) ;
M: maybe effect>type ;
<PRIVATE <PRIVATE
GENERIC: union-of-builtins? ( class -- ? ) GENERIC: union-of-builtins? ( class -- ? )
@ -37,9 +18,6 @@ M: builtin-class union-of-builtins? drop t ;
M: union-class union-of-builtins? M: union-class union-of-builtins?
members [ union-of-builtins? ] all? ; members [ union-of-builtins? ] all? ;
M: maybe union-of-builtins?
class>> union-of-builtins? ;
M: class union-of-builtins? M: class union-of-builtins?
drop f ; drop f ;
@ -96,4 +74,3 @@ M: union-class normalize-class
M: union-class (flatten-class) M: union-class (flatten-class)
members <anonymous-union> (flatten-class) ; members <anonymous-union> (flatten-class) ;

View File

@ -3,7 +3,7 @@
USING: accessors words kernel sequences namespaces make assocs USING: accessors words kernel sequences namespaces make assocs
hashtables definitions kernel.private classes classes.private hashtables definitions kernel.private classes classes.private
classes.algebra quotations arrays vocabs effects combinators classes.algebra quotations arrays vocabs effects combinators
sets classes.union ; sets ;
FROM: namespaces => set ; FROM: namespaces => set ;
IN: generic IN: generic
@ -109,9 +109,6 @@ GENERIC: update-generic ( class generic -- )
GENERIC# method-word-name 1 ( class generic -- string ) GENERIC# method-word-name 1 ( class generic -- string )
M: maybe method-word-name
[ class>> name>> ] [ name>> ] bi* "=>" glue ;
M: class method-word-name ( class generic -- string ) M: class method-word-name ( class generic -- string )
[ name>> ] bi@ "=>" glue ; [ name>> ] bi@ "=>" glue ;

View File

@ -4,7 +4,7 @@ USING: arrays byte-arrays kernel kernel.private math namespaces
make sequences strings effects generic generic.standard make sequences strings effects generic generic.standard
classes classes.algebra slots.private combinators accessors classes classes.algebra slots.private combinators accessors
words sequences.private assocs alien quotations hashtables words sequences.private assocs alien quotations hashtables
classes.union ; classes.maybe ;
IN: slots IN: slots
TUPLE: slot-spec name offset class initial read-only ; TUPLE: slot-spec name offset class initial read-only ;

View File

@ -7,7 +7,7 @@ words.alias quotations io assocs splitting classes.tuple
generic.standard generic.hook generic.math generic.parser classes generic.standard generic.hook generic.math generic.parser classes
io.pathnames vocabs vocabs.parser classes.parser classes.union io.pathnames vocabs vocabs.parser classes.parser classes.union
classes.intersection classes.mixin classes.predicate classes.intersection classes.mixin classes.predicate
classes.singleton classes.tuple.parser compiler.units classes.singleton classes.tuple.parser compiler.units classes.maybe
combinators effects.parser slots hash-sets source-files ; combinators effects.parser slots hash-sets source-files ;
IN: bootstrap.syntax IN: bootstrap.syntax