[Pkg] SystemEditor: SystemEditor-mtf.131.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Wed Oct 8 05:55:53 UTC 2008


A new version of SystemEditor was added to project SystemEditor:
http://www.squeaksource.com/SystemEditor/SystemEditor-mtf.131.mcz

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

Name: SystemEditor-mtf.131
Author: mtf
Time: 7 October 2008, 10:51:51 pm
UUID: 3f040e90-44aa-4dcd-944c-65b52845e15e
Ancestors: SystemEditor-mtf.130

Unified superclass access to squash some ivar bugs

=============== Diff against SystemEditor-mtf.130 ===============

Item was added:
+ ----- Method: ClassEditor class>>classRootEditor (in category 'instance creation') -----
+ classRootEditor
+ "Answer the class of editors for the root of my heiarchy"
+ 
+ 	^ RootClassEditor!

Item was changed:
  ----- Method: OldMetaclassEditor>>instSize (in category 'reflecting') -----
  instSize
  	"Override the implemenation in Behavior, so that when inspecting the
  	ClassEditor, it will look like a regular Class"
  
  	self isDebuggingAsEditor ifTrue: [^ super instSize].
+ 	^ self instVarNames size + self superclassOrEditor instSize!
- 	^ self instVarNames size + (self edSuperclass
- 		ifNil: [0] ifNotNilDo: [:ed | ed instSize])!

Item was added:
+ ----- Method: SystemEditor>>classOrEditorFor: (in category 'accessing') -----
+ classOrEditorFor: aClass
+ "Answers an editor if the class is being edited, or a class if it is not"
+ 
+ 	| editor |
+ 	aClass edIsEditor ifTrue: [^ aClass].
+ 	editor := additions at: aClass theNonMetaClass name ifAbsent: [^ aClass].
+ 	^ aClass isMeta ifTrue: [editor class] ifFalse: [editor]!

Item was changed:
  ----- Method: OldMetaclassEditor>>superclass (in category 'reflecting') -----
  superclass
+ "Answers the editor on my new superclass, creating it if necessary"
+ 
+ 	^ self environment edEditorFor: self superclassOrEditor!
- 	| subjectSuperclass |
- 	superEditor ifNotNil: [^ superEditor].
- 	subjectSuperclass := self subject
- 		ifNil: [Object]
- 		ifNotNil: [self subject superclass].
- 	^ self system edEditorFor: subjectSuperclass!

Item was changed:
  ----- Method: OldMetaclassEditor>>edSuperclass (in category 'building') -----
  edSuperclass
+ "Answer my product's superclass, building it if necessary"
+ 
+ 	| classOrEditor |
+ 	classOrEditor :=  self superclassOrEditor.
+ 	^ classOrEditor edIsEditor
+ 		ifTrue: [classOrEditor product]
+ 		ifFalse: [classOrEditor]!
- 	^ superEditor
- 		ifNil: [self subject superclass]
- 		ifNotNil: [superEditor product]!

Item was added:
+ ----- Method: OldMetaclassEditor>>superclassOrEditor (in category 'accessing') -----
+ superclassOrEditor
+ "Answer my superclass as an editor if it is being edited, or as a class if it is not. Does not add anything to my SystemEditor"
+ 
+ 	superEditor ifNotNil: [^ superEditor].
+ 	self subject superclass ifNil: [^ self class classRootEditor on: nil for: self environment].
+ 	^ self environment classOrEditorFor: self subject superclass!

Item was added:
+ ----- Method: OldMetaclassEditor class>>classRootEditor (in category 'instance creation') -----
+ classRootEditor
+ "Answer the class of editors for the root of my heiarchy"
+ 
+ 	^ OldRootMetaclassEditor!

Item was changed:
  ----- Method: MetaclassEditor>>instSize (in category 'reflecting') -----
  instSize
  	"Override the implemenation in Behavior, so that when inspecting the
  	ClassEditor, it will look like a regular Class"
  
  	self isDebuggingAsEditor ifTrue: [^ super instSize].
+ 	^ self instVarNames size + self superclassOrEditor instSize!
- 	^ self instVarNames size + (self edSuperclass
- 		ifNil: [0] ifNotNilDo: [:ed | ed instSize])!

Item was changed:
  ----- Method: ClassEditor>>edRequiresRecompile (in category 'building') -----
  edRequiresRecompile
  	instVarNames ifNotNil: [^ true].
  	classVarNames ifNotNil: [^ true].
  	sharedPools ifNotNil: [^ true].
  	self decoratorsDo: [:ea | ea edRequiresRecompile ifTrue: [^ true]].
+ 	^ self edSuperclassRequiresRecompile!
- 	^ false!

Item was changed:
  ----- Method: ClassDescriptionEditor>>superclassOrEditor (in category 'accessing') -----
  superclassOrEditor
+ "Answer my superclass as an editor if it is being edited, or as a class if it is not. Does not add anything to my SystemEditor"
- "Answer my superclass as either an editor or class, whichever is easier. Does not add anything to my SystemEditor"
  
+ 	superEditor ifNotNil: [^ superEditor].
+ 	self subject superclass ifNil: [^ self class classRootEditor on: nil for: self environment].
+ 	^ self environment classOrEditorFor: self subject superclass!
- 	^ superEditor
- 		ifNil: [ self subject superclass
- 			ifNil: [RootClassEditor on: nil for: self environment]]!

Item was added:
+ ----- Method: ClassEditor>>edSuperclassRequiresRecompile (in category 'building') -----
+ edSuperclassRequiresRecompile
+ 	^ self superclassOrEditor edIsEditor and: [self superclassOrEditor edRequiresRecompile]!

Item was added:
+ ----- Method: MetaclassEditor class>>classRootEditor (in category 'instance creation') -----
+ classRootEditor
+ "Answer the class of editors for the root of my heiarchy"
+ 
+ 	^ RootMetaclassEditor!

Item was removed:
- ----- Method: MetaclassEditor>>superclass (in category 'reflecting') -----
- superclass
- 	| subjectSuperclass |
- 	superEditor ifNotNil: [^ superEditor].
- 	subjectSuperclass := self subject
- 		ifNil: [Object]
- 		ifNotNil: [self subject superclass].
- 	^ self system edEditorFor: subjectSuperclass!

Item was removed:
- ----- Method: MetaclassEditor>>edSuperclass (in category 'building') -----
- edSuperclass
- 	^ superEditor
- 		ifNil: [self subject superclass]
- 		ifNotNil: [superEditor product]!



More information about the Packages mailing list