prettyprint.backend: leave nesting-limit unset when prettyprinting hashtables without a nesting limit, fixing the bug where it would get set to 1 and print nothing (reported by Blei)

db4
Joe Groff 2010-06-28 09:10:16 -07:00
parent 5966a65ade
commit 8c9c0f05d2
2 changed files with 19 additions and 2 deletions

View File

@ -226,9 +226,13 @@ M: object pprint-object ( obj -- )
M: object pprint* pprint-object ; M: object pprint* pprint-object ;
M: vector pprint* pprint-object ; M: vector pprint* pprint-object ;
M: byte-vector pprint* pprint-object ; M: byte-vector pprint* pprint-object ;
: with-extra-nesting-level ( quot -- )
nesting-limit [ dup [ 1 + ] [ f ] if* ] change
[ nesting-limit set ] curry [ ] cleanup ; inline
M: hashtable pprint* M: hashtable pprint*
nesting-limit inc [ pprint-object ] with-extra-nesting-level ;
[ pprint-object ] [ nesting-limit dec ] [ ] cleanup ;
M: curry pprint* pprint-object ; M: curry pprint* pprint-object ;
M: compose pprint* pprint-object ; M: compose pprint* pprint-object ;
M: hash-set pprint* pprint-object ; M: hash-set pprint* pprint-object ;

View File

@ -374,3 +374,16 @@ TUPLE: final-tuple ; final
] [ ] [
[ \ final-tuple see ] with-string-writer "\n" split [ \ final-tuple see ] with-string-writer "\n" split
] unit-test ] unit-test
[ "H{ { 1 2 } }\n" ] [ [ H{ { 1 2 } } short. ] with-string-writer ] unit-test
[ "H{ { 1 ~array~ } }\n" ] [ [ H{ { 1 { 2 } } } short. ] with-string-writer ] unit-test
[ "{ ~array~ }\n" ] [ [ { { 1 2 } } short. ] with-string-writer ] unit-test
[ "H{ { 1 { 2 3 } } }\n" ] [
f nesting-limit [
[ H{ { 1 { 2 3 } } } . ] with-string-writer
] with-variable
] unit-test