diff --git a/basis/prettyprint/prettyprint-tests.factor b/basis/prettyprint/prettyprint-tests.factor index 8ba6e94a49..ec0e20a393 100644 --- a/basis/prettyprint/prettyprint-tests.factor +++ b/basis/prettyprint/prettyprint-tests.factor @@ -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 diff --git a/basis/see/see.factor b/basis/see/see.factor index 0d2388114a..326e051219 100644 --- a/basis/see/see.factor +++ b/basis/see/see.factor @@ -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* - pprint-; block> ; + { + [ pprint-word ] + [ superclass. ] + [ pprint-; ] + [ tuple-declarations. ] + } cleave + block> ; M: word see-class* drop ;