fixed recursive compiler errors
parent
33d99b6076
commit
3ef4784a63
|
@ -21,16 +21,14 @@ DEFER: mdb-persistent?
|
||||||
: tuple-instance ( tuple-info -- instance )
|
: tuple-instance ( tuple-info -- instance )
|
||||||
mdbinfo>tuple-class new ; inline
|
mdbinfo>tuple-class new ; inline
|
||||||
|
|
||||||
: [keys>tuple] ( mirror assoc -- quot: ( elt -- ) )
|
|
||||||
'[ dup _ at assoc>tuple swap _ set-at ] ;
|
|
||||||
|
|
||||||
: prepare-assoc>tuple ( assoc -- tuple keylist mirror assoc )
|
: prepare-assoc>tuple ( assoc -- tuple keylist mirror assoc )
|
||||||
[ tuple-info tuple-instance dup
|
[ tuple-info tuple-instance dup
|
||||||
<mirror> [ keys ] keep ] keep swap ; inline
|
<mirror> [ keys ] keep ] keep swap ; inline
|
||||||
|
|
||||||
: make-tuple ( assoc -- tuple )
|
: make-tuple ( assoc -- tuple )
|
||||||
prepare-assoc>tuple [keys>tuple] each
|
prepare-assoc>tuple
|
||||||
[ set-persistent ] keep ; inline
|
'[ dup _ at assoc>tuple swap _ set-at ] each
|
||||||
|
[ set-persistent ] keep ; inline recursive
|
||||||
|
|
||||||
: at+ ( value key assoc -- value )
|
: at+ ( value key assoc -- value )
|
||||||
2dup key?
|
2dup key?
|
||||||
|
@ -88,5 +86,5 @@ M: tuple tuple>selector ( tuple -- assoc )
|
||||||
[ [ dup tuple-info?
|
[ [ dup tuple-info?
|
||||||
[ make-tuple ]
|
[ make-tuple ]
|
||||||
[ ] if ] [ drop ] recover
|
[ ] if ] [ drop ] recover
|
||||||
] [ ] if ; inline
|
] [ ] if ; inline recursive
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue