[squeak-dev] The Trunk: Tools-eem.736.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Dec 16 19:28:27 UTC 2016


Eliot Miranda uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-eem.736.mcz

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

Name: Tools-eem.736
Author: eem
Time: 16 December 2016, 11:28:21.691735 am
UUID: edf74efa-cdf2-4a15-8526-40f44f02273b
Ancestors: Tools-eem.735

Stop MessageSet>>initializeMessageList: from installng new MethodReferences when given a list of MethodReferences.  The substitution breaks schemes such as constructing MessageSets for variants of MethodReference that hold edited versions of code, e.g. for viewing potential edits from the rewrite engine.

=============== Diff against Tools-eem.735 ===============

Item was changed:
  ----- Method: MessageSet>>initializeMessageList: (in category 'private') -----
  initializeMessageList: anArray
+ 	"Initialize my messageList from the given list of MethodReference or string objects.  NB: special handling for uniclasses.
+ 	 Do /not/ replace the elements of anArray if they are already MethodReferences, so as to allow users to construct richer
+ 	 systems, such as differencers between existing and edited versions of code."
- 	"Initialize my messageList from the given list of MethodReference or string objects.  NB: special handling for uniclasses."
- 
  	
  	messageList := OrderedCollection new.
+ 	anArray do:
+ 		[:each |
+ 		 each isMethodReference
+ 			ifTrue: [messageList addLast: each]
+ 			ifFalse:
+ 				[MessageSet 
+ 					parse: each  
+ 					toClassAndSelector: [ :class :sel | | s |
+ 						class ifNotNil:
+ 							[class isUniClass
+ 								ifTrue:
+ 									[s := class typicalInstanceName, ' ', sel]
+ 								ifFalse:
+ 									[s := class name , ' ' , sel , ' {' , 
+ 										((class organization categoryOfElement: sel) ifNil: ['']) , '}' ,
+ 										' {', class category, '}'].
+ 							messageList addLast: (
+ 								MethodReference new
+ 									setClass: class  
+ 									methodSymbol: sel 
+ 									stringVersion: s)]]]].
- 	anArray do: [ :each |
- 		MessageSet 
- 			parse: each  
- 			toClassAndSelector: [ :class :sel | | s |
- 				class ifNotNil:
- 					[class isUniClass
- 						ifTrue:
- 							[s := class typicalInstanceName, ' ', sel]
- 						ifFalse:
- 							[s := class name , ' ' , sel , ' {' , 
- 								((class organization categoryOfElement: sel) ifNil: ['']) , '}' ,
- 								' {', class category, '}'].
- 					messageList add: (
- 						MethodReference new
- 							setClass: class  
- 							methodSymbol: sel 
- 							stringVersion: s)]]].
  	messageListIndex := messageList isEmpty ifTrue: [0] ifFalse: [1].
  	contents := ''!



More information about the Squeak-dev mailing list