The Trunk: System-eem.787.mcz

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

The Trunk: System-eem.787.mcz

commits-2
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.787.mcz

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

Name: System-eem.787
Author: eem
Time: 20 January 2016, 1:47:21.381067 pm
UUID: 14aec38e-df6c-4751-9bb8-fa68dffb16e5
Ancestors: System-tpr.786

When triming change set history, nuke changes for methods that can't be found as well as those that have been added then removed.

Add some robustness to parsing class names in class definitions in ChangeRecord.

=============== Diff against System-tpr.786 ===============

Item was changed:
  ----- Method: ChangeRecord>>methodClassName (in category 'access') -----
  methodClassName
  | tokens |
  (class isNil
  and: [type = #doIt
+ and: [([(tokens := Scanner new scanTokens: self text) size >= 3]
+ on: Error do: [:ex| false])
- and: [(tokens := Scanner new scanTokens: self text) size >= 3
  and: [(tokens includes: #'.') not "exclude multi-statement doits"
  and: [tokens first isSymbol
  and: [tokens first isKeyword not
  and: [tokens first first canBeGlobalVarInitial
  and: [(tokens includes: #instanceVariableNames:)
  or: [tokens second == #comment:
  or: [tokens third == #comment:]]]]]]]]]) ifTrue:
  ["Could be a class definition.
  Class definitions start with Superclass blahSubclass: #ClassName
  Metaclass definitions start with ClassName class instanceVariableNames:"
  (tokens second isSymbol
   and: [tokens second isKeyword
   and: [tokens third isSymbol
   and: [tokens third isKeyword not
   and: [(2 to: tokens size by: 2) allSatisfy: [:i| (tokens at: i) isKeyword]]]]]) ifTrue:
  [^tokens third].
  (tokens size = 4
   and: [tokens second = #class
   and: [(tokens third = #instanceVariableNames: or: [tokens third = #comment:])
   and: [tokens last isString]]]) ifTrue:
  [^tokens first].
  (tokens size = 3
   and: [tokens second = #comment:
   and: [tokens last isString]]) ifTrue:
  [^tokens first]].
  ^class!

Item was changed:
  ----- Method: ClassChangeRecord>>trimHistory (in category 'all changes') -----
  trimHistory
  "Drop non-essential history."
+ | realClass |
+ realClass := self realClass.
 
  "Forget methods added and later removed"
  methodChanges keysAndValuesRemove:
+ [:sel :chgRecord |
+ chgRecord changeType == #addedThenRemoved
+ "this removes methods that have been lost, e.g. by being deleted in a different change set, etc"
+ or: [(chgRecord changeType == #add or: [chgRecord changeType == #change])
+ and: [realClass isNil or: [(realClass includesSelector: sel) not]]]].
- [:sel :chgRecord | chgRecord changeType == #addedThenRemoved].
 
  "Forget renaming and reorganization of newly-added classes."
  (changeTypes includes: #add) ifTrue:
+ [changeTypes removeAllFoundIn: #(rename reorganize)]!
- [changeTypes removeAllFoundIn: #(rename reorganize)].
- !