UnaryNode.st
changeset 84 ecb74f0507fd
parent 63 c30ce56de7a8
child 102 77e4d1119ff2
--- a/UnaryNode.st	Tue Apr 11 17:30:32 1995 +0200
+++ b/UnaryNode.st	Tue May 02 01:04:40 1995 +0200
@@ -21,7 +21,7 @@
 COPYRIGHT (c) 1989 by Claus Gittinger
               All Rights Reserved
 
-$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.11 1995-02-18 01:25:46 claus Exp $
+$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.12 1995-05-01 23:04:37 claus Exp $
 '!
 
 !UnaryNode class methodsFor:'documentation'!
@@ -42,7 +42,7 @@
 
 version
 "
-$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.11 1995-02-18 01:25:46 claus Exp $
+$Header: /cvs/stx/stx/libcomp/UnaryNode.st,v 1.12 1995-05-01 23:04:37 claus Exp $
 "
 !
 
@@ -73,6 +73,22 @@
 "
     folding ifTrue:[
         "do constant folding ..."
+	r isGlobal ifTrue:[
+	    (r name = 'Character') ifTrue:[
+		recVal := r evaluate.
+		selector := selectorString asSymbolIfInterned.
+		selector notNil ifTrue:[
+                    (#( tab cr space) includes:selector)
+                    ifTrue:[
+		        (recVal respondsTo:selector) ifTrue:[
+                            result := recVal perform:selector.
+                            ^ ConstantNode type:(ConstantNode typeOfConstant:result)
+                                          value:result
+                        ]
+		    ]
+		]
+	    ]
+	].
         r isConstant ifTrue:[
             "check if we can do it ..."
             recVal := r evaluate.