The Trunk: ShoutCore-eem.55.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: ShoutCore-eem.55.mcz

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