Bugfix for Java extension methods.
Fixes RegressionTests>>ChangeSetTests
- test_MethodDefinitionChange_jextension_01a
- test_MethodDefinitionChange_jextension_01b
--- a/ChangeSet.st Wed May 01 10:33:15 2013 +0200
+++ b/ChangeSet.st Wed May 01 19:04:13 2013 +0200
@@ -2277,23 +2277,33 @@
classNameOfRememberingNamespace:aReceiver
"new"
- | nameSpace clsName rr|
-
+ | nameSpace isMeta clsNode clsName |
nameSpace := Class nameSpaceQuerySignal query.
- (aReceiver isUnaryMessage) ifTrue:[
- rr := aReceiver receiver.
- (aReceiver selector == #classSide) ifTrue:[
- clsName := (rr name) , ' classSide'
- ] ifFalse:[
- (aReceiver selector == #class) ifTrue:[
- clsName := (rr name) , ' class'
- ] ifFalse:[
- self error:'unhandled receiver message'.
- ].
- ]
+ isMeta := false.
+ classIsJava := false.
+
+
+ (aReceiver isUnaryMessage and:[aReceiver selector == #class]) ifTrue:[
+ isMeta := true.
+ clsNode := aReceiver receiver.
] ifFalse:[
- clsName := aReceiver name.
+ clsNode := aReceiver.
+ ].
+
+ clsNode isMessage ifFalse:[
+ "Normal smalltalk method on Smalltalk class"
+ clsName := clsNode name
+ ] ifTrue:[
+ "Maybe a Java class?"
+ ((clsNode selector == #classForName:) and:[clsNode receiver name = 'Java']) ifTrue:[
+ clsName := '(Java classForName:''%1'')' bindWith: clsNode arguments first value.
+ classIsJava := true.
+ ].
+ ].
+
+ isMeta ifTrue:[
+ clsName := clsName , ' class'.
].
(nameSpace ~~ Smalltalk and:[(clsName startsWith: nameSpace name) not])
@@ -2308,7 +2318,7 @@
^ clsName
].
- "Modified: / 24-01-2012 / 17:07:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 01-05-2013 / 17:57:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
extractMethodsClassAndSelectorFromReceiver
@@ -4468,11 +4478,11 @@
!ChangeSet class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.225 2013-05-01 08:33:15 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.226 2013-05-01 17:04:13 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.225 2013-05-01 08:33:15 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic3/ChangeSet.st,v 1.226 2013-05-01 17:04:13 vrany Exp $'
!
version_HG