class: SmallSense::SmalltalkInferencer
removed prerequisite dependency on libjava
--- a/SmallSense__SmalltalkInferencer.st Mon Mar 23 18:01:07 2015 +0100
+++ b/SmallSense__SmalltalkInferencer.st Mon Mar 23 18:01:20 2015 +0100
@@ -635,7 +635,7 @@
visitUnaryNode:anObject
- | type sel rec classes |
+ | type sel rec classes javaClass javaNamespace javaVM|
super visitUnaryNode:anObject.
@@ -666,21 +666,25 @@
rec := anObject receiver.
classes := rec inferedType classes.
classes size == 1 ifTrue:[
+ javaClass := Smalltalk at:#JavaClass.
+ javaNamespace := Smalltalk at:#JAVA.
+ javaVM := Smalltalk at:#JavaVM.
+
"/ Special hack for Java, when code is like
"/ `JAVA java lang reflect`
classes anElement == JavaPackage class ifTrue:[
- (JAVA notNil and:[anObject selector first isUppercase]) ifTrue:[
+ (javaNamespace notNil and:[anObject selector first isUppercase]) ifTrue:[
| jclass |
"/ fetch an accessor...
[
jclass := anObject evaluate.
"/ fetch the class...
- jclass := JavaVM classNamed: jclass fullName definedBy: JavaVM systemClassLoader.
+ jclass := javaVM classNamed: jclass fullName definedBy: javaVM systemClassLoader.
jclass notNil ifTrue:[
anObject inferedType: (Type withClass: jclass class).
] ifFalse:[
- anObject inferedType: (Type withClass: JavaClass class).
+ anObject inferedType: (Type withClass: javaClass class).
].
] on: Error do:[
"/ ignore...
@@ -717,12 +721,20 @@
!SmalltalkInferencer class methodsFor:'documentation'!
+version
+ ^ '$Header: /cvs/stx/stx/goodies/smallsense/SmallSense__SmalltalkInferencer.st,v 1.2 2015-03-23 17:01:20 cg Exp $'
+!
+
+version_CVS
+ ^ '$Path: stx/goodies/smallsense/SmallSense__SmalltalkInferencer.st, Version: 1.0, User: cg, Time: 2015-03-23T18:02:05.928+01$'
+!
+
version_HG
^ '$Changeset: <not expanded> $'
!
version_SVN
- ^ '$Id$'
+ ^ '$Id: SmallSense__SmalltalkInferencer.st,v 1.2 2015-03-23 17:01:20 cg Exp $'
! !