Morphic Cleanup Project (MCP) - Workspace
Last updated at 1:10 am UTC on 17 January 2006
This a a temporary workspace for MCP related work. Read it at your our risk ;)
Analisis of changes made by removals for 3.6a
Scripts we used to resolve the conflict between removals and our work
"removed classes"
ChangeSorter allChangeSets
inject: Set new
into:[:removedClasses :cs |
removedClasses addAll: cs classRemoves.
removedClasses].
"removed methods"
ChangeSorter allChangeSets
inject: Set new
into:[:removedMethods :cs |
cs methodChanges keysAndValuesDo:[:className :change |
change keysAndValuesDo:[:methodName :operation |
operation == #remove ifTrue:[
removedMethods add: className -> methodName
].
].
].
removedMethods].
"added methods"
ChangeSorter allChangeSets
inject: Set new
into:[:addedMethods :cs |
cs methodChanges keysAndValuesDo:[:className :change |
change keysAndValuesDo:[:methodName :operation |
operation == #add ifTrue:[
addedMethods add: className -> methodName
].
].
].
addedMethods].
"changed methods"
ChangeSorter allChangeSets
inject: Set new
into:[:changedMethods :cs |
cs methodChanges keysAndValuesDo:[:className :change |
change keysAndValuesDo:[:methodName :operation |
operation == #change ifTrue:[
changedMethods add: className -> methodName
].
].
].
changedMethods].
"move classes"
removedClassesInMCP := removedClasses select:[:e | mcpCompleteCS methodChanges includesKey: e ].
removedClassesInMCP do:[:e |
mcpChangesForRemovalsCS absorbClass: e from: mcpCompleteCS
]
removedClassesInMCP do:[:e |
mcpCompleteCS removeClassChanges: e.
]
"move metaclases"
removedMetaClassesInMCP := (removedClasses collect:[:each | each asString, ' class']) reject:[:e | (mcpCompleteCS classChangeAt: e) isEmpty]
removedMetaClassesInMCP do:[:e |
mcpChangesForRemovalsCS absorbClass: e from: mcpCompleteCS
]
removedMetaClassesInMCP do:[:e |
mcpCompleteCS removeClassChanges: e.
]