see: show final declaration on tuples
parent
c4c14c7ceb
commit
9df8a3adbd
|
@ -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
|
||||||
|
|
|
@ -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 ;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue