[squeak-dev] The Trunk: ShoutCore-eem.55.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Jul 15 18:25:27 UTC 2016


Eliot Miranda uploaded a new version of ShoutCore to project The Trunk:
http://source.squeak.org/trunk/ShoutCore-eem.55.mcz

==================== Summary ====================

Name: ShoutCore-eem.55
Author: eem
Time: 15 July 2016, 11:25:13.01885 am
UUID: 3782ae4b-4a18-482f-9ce9-acabbd258ad3
Ancestors: ShoutCore-ul.54

Fix SHMCClassDefinition>>withAllSuperclassesDo: to always supply a SHMCClassDefinition when supplying a MCClassDefinition.  MCClassDefinition does not understand classPool and hence SHParserST80>>#resolve: crashes if trying to identify a #classVar when given a MCClassDefinition.

=============== Diff against ShoutCore-ul.54 ===============

Item was changed:
  ----- Method: SHMCClassDefinition>>withAllSuperclassesDo: (in category 'act like a class') -----
  withAllSuperclassesDo: aBlock
  
  	| superclassOrDef classOrDef |
  	aBlock value: self.
  	classOrDef := classDefinition.
  	[ 
  		superclassOrDef := (classOrDef isKindOf: MCClassDefinition)
  			ifTrue: [
  				| superclassName |
  				superclassName := classOrDef superclassName.
  				items 
  					detect: [ :each | 
  						each isClassDefinition and: [
  							each className = superclassName ] ]
  					ifNone: [ Smalltalk classNamed: superclassName ] ]
  			ifFalse: [ 
  				classOrDef superclass ifNotNil: [ :superclass |
  					| superclassName |
  					superclassName := superclass name asString.
  					items 
  						detect: [ :each | 
  							each isClassDefinition and: [
  								each className = superclassName ] ]
  						ifNone: [ superclass ] ] ].
  		superclassOrDef isNil ] 
  		whileFalse: [
+ 			aBlock value: (superclassOrDef isBehavior
+ 							ifTrue: [superclassOrDef]
+ 							ifFalse: [(superclassOrDef isKindOf: SHMCClassDefinition)
+ 										ifTrue: [superclassOrDef]
+ 										ifFalse: [SHMCClassDefinition 
+ 													classDefinition: superclassOrDef 
+ 													items: items 
+ 													meta: (superclassOrDef className includes: $ )]]).
- 			aBlock value: superclassOrDef.
  			classOrDef := superclassOrDef ]!



More information about the Squeak-dev mailing list