Levente Uzonyi uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ul.607.mcz==================== Summary ====================
Name: System-ul.607
Author: ul
Time: 25 October 2013, 6:47:30.844 pm
UUID: 5d2174eb-547d-44d1-8466-98c855eff27e
Ancestors: System-cmm.606
ChangeRecord >> #fileIn: must use the environment to look up the methodClass.
RecentMessages >> #revertMostRecent must pass the environment to the changeRecord, otherwise it can't be filed in.
=============== Diff against System-cmm.606 ===============
Item was changed:
----- Method: ChangeRecord>>fileIn: (in category 'initialization') -----
fileIn: anEnvironment
"File the receiver in. If I represent a method or a class-comment, file the method in and make a note of it in the recent-submissions list; if I represent a do-it, then, well, do it; if I represent a reorganization then get organized!!"
Cursor read showWhile:
[| s cls aSelector |
type == #doIt
ifTrue:
[((s := self string) beginsWith: '----') ifFalse: [Compiler evaluate: s]]
ifFalse:
+ [cls := self methodClass: anEnvironment.
- [cls := self methodClass.
type == #method ifTrue:
[[cls compile: self text classified: category withStamp: stamp notifying: nil]
on: EnvironmentRequest do: [:e | e resume: anEnvironment].
(aSelector := self methodSelector) ifNotNil:
[RecentMessages default recordSelector: aSelector forClass: cls inEnvironment: anEnvironment]].
type == #classComment ifTrue:
[cls comment: self text stamp: stamp.
RecentMessages default recordSelector: #Comment forClass: cls inEnvironment: anEnvironment].
type == #reorganize ifTrue:
[cls organization changeFromString: self text]]]!
Item was changed:
----- Method: RecentMessages>>revertMostRecent (in category 'accessing') -----
revertMostRecent
"If the most recent method submission was a method change, revert
that change, and if it was a submission of a brand-new method,
remove that method."
| changeRecords lastSubmission theClass theSelector |
methodReferences ifEmpty: [ ^ Beeper beep ].
lastSubmission := self mostRecent.
theClass := lastSubmission actualClass ifNil: [ ^ Beeper beep ].
theSelector := lastSubmission methodSymbol.
changeRecords := theClass changeRecordsAt: theSelector.
changeRecords isEmptyOrNil ifTrue: [ ^ Beeper beep ].
changeRecords size = 1
ifTrue: [ "method has no prior version, so reverting in this case means removing"
theClass removeSelector: theSelector ]
+ ifFalse: [ changeRecords second fileIn: lastSubmission environment ]
- ifFalse: [ changeRecords second fileIn ]
!