DoWhatIMeanSupport.st
changeset 3681 6dca6308d156
parent 3680 1e79e8081859
child 3693 9d0059e1374b
--- a/DoWhatIMeanSupport.st	Wed Apr 22 16:59:35 2009 +0200
+++ b/DoWhatIMeanSupport.st	Mon Apr 27 14:10:54 2009 +0200
@@ -909,7 +909,7 @@
 !
 
 lookupClassForMessage:node inClass:classProvidingNamespace
-    |receiver nm nodeVal|
+    |receiver nm nodeVal receiverClass|
 
     receiver := node receiver.
     receiver isVariable ifTrue:[
@@ -935,6 +935,19 @@
     receiver isLiteral ifTrue:[
         ^ receiver value class
     ].
+    receiver isMessage ifTrue:[
+        (receiver selector = 'new'
+        or:[ receiver selector = 'new:' ]) ifTrue:[
+            receiverClass := self lookupClassForMessage:receiver inClass:classProvidingNamespace.
+            receiverClass notNil ifTrue:[
+                receiverClass isBehavior ifTrue:[
+                    receiverClass isMeta ifTrue:[
+                        ^ receiverClass theNonMetaclass
+                    ]
+                ]
+            ].
+        ].
+    ].
     ^ nil
 !
 
@@ -1776,5 +1789,5 @@
 !DoWhatIMeanSupport class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/DoWhatIMeanSupport.st,v 1.52 2009-04-22 14:59:35 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/DoWhatIMeanSupport.st,v 1.53 2009-04-27 12:10:54 cg Exp $'
 ! !