see: show final declaration on tuples

db4
Slava Pestov 2010-02-18 03:01:26 +13:00
parent c4c14c7ceb
commit 9df8a3adbd
2 changed files with 26 additions and 7 deletions

View File

@ -362,3 +362,15 @@ TUPLE: tuple-with-initial-declared-slot { x integer initial: 123 } ;
] [ ] [
[ \ tuple-with-initial-declared-slot see ] with-string-writer "\n" split [ \ tuple-with-initial-declared-slot see ] with-string-writer "\n" split
] unit-test ] unit-test
TUPLE: final-tuple ; final
[
{
"IN: prettyprint.tests"
"TUPLE: final-tuple ; final"
""
}
] [
[ \ final-tuple see ] with-string-writer "\n" split
] unit-test

View File

@ -1,4 +1,4 @@
! Copyright (C) 2009 Slava Pestov. ! Copyright (C) 2009, 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 classes classes.builtin USING: accessors arrays assocs classes classes.builtin
classes.intersection classes.mixin classes.predicate classes.singleton classes.intersection classes.mixin classes.predicate classes.singleton
@ -182,14 +182,21 @@ M: array pprint-slot-name
dup length 1 = [ first ] when dup length 1 = [ first ] when
pprint-slot-name ; pprint-slot-name ;
: tuple-declarations. ( class -- )
\ final declaration. ;
: superclass. ( class -- )
superclass dup tuple eq? [ drop ] [ "<" text pprint-word ] if ;
M: tuple-class see-class* M: tuple-class see-class*
<colon \ TUPLE: pprint-word <colon \ TUPLE: pprint-word
dup pprint-word {
dup superclass tuple eq? [ [ pprint-word ]
"<" text dup superclass pprint-word [ superclass. ]
] unless [ <block "slots" word-prop [ pprint-slot ] each block> pprint-; ]
<block "slots" word-prop [ pprint-slot ] each block> [ tuple-declarations. ]
pprint-; block> ; } cleave
block> ;
M: word see-class* drop ; M: word see-class* drop ;