Fixed PPCSetUpBefore...Resource to work on Pharo. Few othr minor Pharo fixes.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 31 Jul 2015 14:07:31 +0100
changeset 514 46dd1237b20a
parent 513 7b8093caf796
child 516 3b81c9e53352
Fixed PPCSetUpBefore...Resource to work on Pharo. Few othr minor Pharo fixes.
compiler/PPCASTUtilities.st
compiler/tests/extras/PPCSetUpBeforeTearDownAfterResource.st
--- a/compiler/PPCASTUtilities.st	Fri Jul 31 09:35:15 2015 +0100
+++ b/compiler/PPCASTUtilities.st	Fri Jul 31 14:07:31 2015 +0100
@@ -28,9 +28,17 @@
     allClassVarNames := Set new.
     cls := aClaas.
     [ cls notNil ] whileTrue:[ 
-        allInstVarNames addAll: cls instanceVariables.
-        allClassVarNames addAll: cls classVariables.
-        cls := cls superclass.
+	| instanceVariables classVariables |
+		
+	instanceVariables := cls instanceVariables.
+	classVariables := cls classVariables.
+	instanceVariables notNil ifTrue:[
+	    allInstVarNames addAll: instanceVariables.
+	]. 
+	classVariables notNil ifTrue:[
+	    allClassVarNames addAll: classVariables.
+	].
+	cls := cls superclass.
     ].
 
     self withAllVariableNodesOf: anRBBlockNode  do: [ :node | 
--- a/compiler/tests/extras/PPCSetUpBeforeTearDownAfterResource.st	Fri Jul 31 09:35:15 2015 +0100
+++ b/compiler/tests/extras/PPCSetUpBeforeTearDownAfterResource.st	Fri Jul 31 14:07:31 2015 +0100
@@ -67,23 +67,38 @@
 !PPCSetUpBeforeTearDownAfterResource class methodsFor:'subclass creation'!
 
 for: aClass
-    ^ CachedResources at: aClass ifAbsentPut:[
-        | resourceMeta resourceClass |
+	^ CachedResources at: aClass ifAbsentPut:[
+		| resourceMeta resourceClass |
 
-        resourceMeta := Metaclass new.
-        resourceMeta setSuperclass: self class.
-        resourceMeta instSize: self class instSize.  
-        resourceClass := resourceMeta new.
-        resourceClass setSuperclass: self.
-        resourceClass instSize: self instSize.  
-        resourceClass testCaseClass: aClass.
-        resourceClass
-    ]
+		((Smalltalk respondsTo: #isSmalltalkX) and:[Smalltalk isSmalltalkX]) ifTrue:[
+			resourceMeta := Metaclass new.
+			resourceMeta setSuperclass: self class.
+			resourceMeta instSize: self class instSize.  
+			resourceClass := resourceMeta new.
+			resourceClass setSuperclass: self.
+			resourceClass instSize: self instSize.  
+		] ifFalse:[
+			" Assumes Pharo 5.0"
+			resourceMeta := Metaclass new.
+			resourceMeta
+				superclass: self class
+				withLayoutType: FixedLayout
+				slots: #().
+			resourceClass := resourceMeta new.
+			resourceClass superclass: self 
+				withLayoutType: FixedLayout
+				slots: #().			
+		].
+		resourceClass testCaseClass: aClass.
+		resourceClass
+	]
 
-    "Created: / 29-07-2015 / 16:17:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 30-07-2015 / 07:48:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+	"Created: / 29-07-2015 / 16:17:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+	"Modified (format): / 30-07-2015 / 07:48:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
 ! !
 
+
 !PPCSetUpBeforeTearDownAfterResource methodsFor:'setup & teardown'!
 
 setUp