--- 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.