tools.crossref: switch to using identity hash-sets.
parent
3862c4f9b5
commit
cb622f4d85
|
@ -1,10 +1,10 @@
|
||||||
! Copyright (C) 2005, 2010 Slava Pestov.
|
! Copyright (C) 2005, 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs bootstrap.image.private
|
USING: accessors arrays assocs combinators.smart compiler.units
|
||||||
combinators.smart compiler.units generic generic.single graphs
|
generic generic.single graphs hash-sets.identity hashtables help
|
||||||
hashtables help help.crossref help.markup help.topics init io
|
help.crossref help.markup help.topics init io io.pathnames
|
||||||
io.pathnames io.styles kernel namespaces quotations see
|
io.styles kernel namespaces quotations see sequences sets
|
||||||
sequences sets sorting source-files threads vocabs words ;
|
sorting source-files threads vocabs words ;
|
||||||
IN: tools.crossref
|
IN: tools.crossref
|
||||||
|
|
||||||
SYMBOL: crossref
|
SYMBOL: crossref
|
||||||
|
@ -22,12 +22,12 @@ M: object quot-uses 2drop ;
|
||||||
M: word quot-uses over crossref? [ adjoin ] [ 2drop ] if ;
|
M: word quot-uses over crossref? [ adjoin ] [ 2drop ] if ;
|
||||||
|
|
||||||
: seq-uses ( seq set -- )
|
: seq-uses ( seq set -- )
|
||||||
over <eq-wrapper> visited get ?adjoin [
|
over visited get ?adjoin [
|
||||||
[ quot-uses ] curry each
|
[ quot-uses ] curry each
|
||||||
] [ 2drop ] if ; inline
|
] [ 2drop ] if ; inline
|
||||||
|
|
||||||
: assoc-uses ( assoc' set -- )
|
: assoc-uses ( assoc' set -- )
|
||||||
over <eq-wrapper> visited get ?adjoin [
|
over visited get ?adjoin [
|
||||||
[ quot-uses ] curry [ bi@ ] curry assoc-each
|
[ quot-uses ] curry [ bi@ ] curry assoc-each
|
||||||
] [ 2drop ] if ; inline
|
] [ 2drop ] if ; inline
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ M: callable quot-uses seq-uses ;
|
||||||
M: wrapper quot-uses [ wrapped>> ] dip quot-uses ;
|
M: wrapper quot-uses [ wrapped>> ] dip quot-uses ;
|
||||||
|
|
||||||
M: callable uses ( quot -- seq )
|
M: callable uses ( quot -- seq )
|
||||||
HS{ } clone visited [
|
IHS{ } clone visited [
|
||||||
HS{ } clone [ quot-uses ] keep members
|
HS{ } clone [ quot-uses ] keep members
|
||||||
] with-variable ;
|
] with-variable ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue