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 ]!