help: small fix because I forgot to test predicates still worked.

locals-and-roots
John Benediktsson 2016-04-04 15:40:26 -07:00
parent bdd4d49ac1
commit 7468da3cd3
1 changed files with 10 additions and 5 deletions

View File

@ -11,7 +11,10 @@ IN: help
GENERIC: word-help* ( word -- content )
: word-help ( word -- content )
dup "help" word-prop [ ] [ word-help* ] ?if ;
dup "help" word-prop [ ] [
dup word-help* dup
[ swap 2array 1array ] [ 2drop f ] if
] ?if ;
: $predicate ( element -- )
{ { "object" object } { "?" boolean } } $values
@ -21,8 +24,8 @@ GENERIC: word-help* ( word -- content )
" class." ,
] { } make $description ;
M: word word-help*
stack-effect [ in>> ] [ out>> ] bi [
: $default ( element -- )
first stack-effect [ in>> ] [ out>> ] bi [
[
dup pair? [
first2 dup effect? [ \ $quotation swap 2array ] when
@ -30,11 +33,13 @@ M: word word-help*
object
] if
] { } map>assoc
] bi@ append members \ $values prefix 1array ;
] bi@ append members $values ;
M: word word-help* drop \ $default ;
M: class word-help* drop f ;
M: predicate word-help* \ $predicate prefix 1array ;
M: predicate word-help* drop \ $predicate ;
: all-articles ( -- seq )
articles get keys