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