'From Squeak5.3alpha of 21 June 2019 [latest update: #18619] on 24 June 2019 at 10:31:49 am'!

!Object methodsFor: 'literals' stamp: 'mt 6/24/2019 09:51'!
allLiteralsDo: aBlock

	self flag: #discuss. "mt: Better implement this only on Symbol, Array, Number, Binding, etc. instead of Object?"
	aBlock value: self.!
]style[(14 1 6 3 4 1 5 1 8 2 91 2 6 1 6 1 4 1)b,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;! !

!Object methodsFor: 'literals' stamp: 'mt 5/28/2019 10:58'!
hasLiteral: literal

	^ self hasLiteralSuchThat: [:lit | lit literalEqual: literal]!
]style[(11 1 7 3 1 1 4 1 19 3 3 1 1 1 3 1 13 1 7 1)b,cblack;,c000000126,cblack;,c126000000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !

!Object methodsFor: 'literals' stamp: 'mt 6/5/2019 11:24'!
hasLiteralSuchThat: testBlock

	self allLiteralsDo: [:literal |
		(testBlock value: literal) ifTrue: [^ true]].
	
	^ false!
]style[(19 1 9 3 4 1 14 3 7 1 1 3 1 9 1 6 1 7 1 1 7 1 1 1 1 4 1 6 1 1 5)b,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000126000,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c126000000,c000126000,cblack;,c126000000,cblack;,c126000000! !

!Object methodsFor: 'literals' stamp: 'mt 6/5/2019 11:25'!
hasLiteralThorough: literal
	"Backwards compatiblility."

	self flag: #deprecate. "mt: Is there any need to check for a literal not thoroughly?"	
	^ self hasLiteral: literal!
]style[(19 1 7 2 27 3 4 1 5 1 10 2 62 3 1 1 4 1 11 1 7)b,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126! !


!AdditionalMethodState methodsFor: 'literals' stamp: 'mt 6/5/2019 11:12'!
allLiteralsDo: aBlock

	1 to: self basicSize do: [:index |
		(self basicAt: index) allLiteralsDo: aBlock].!
]style[(14 1 6 3 1 1 3 1 4 1 9 1 3 3 5 1 1 3 1 4 1 8 1 5 1 1 14 1 6 2)b,cblack;,c000000125,cblack;,c125000000,cblack;,c000000125,cblack;,c125000000,cblack;,c000000125,cblack;,c000000125,cblack;,c000000125,cblack;,cgray;,cblack;,c000125000,c125000000,cblack;,c000000125,cblack;,c000000125,c000125000,cblack;,c000000125,cblack;,c000000125,cblack;! !


!Array methodsFor: 'literals' stamp: 'mt 6/24/2019 09:25'!
allLiteralsDo: aBlock

	"I am a literal."
	aBlock value: self.
	
	"All my elements are literals."
	self do: [:each | each allLiteralsDo: aBlock].!
]style[(14 1 6 3 17 2 6 1 6 1 4 5 31 2 4 1 3 3 4 1 1 1 4 1 14 1 6 2)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !


!Association methodsFor: 'literals' stamp: 'mt 6/24/2019 09:26'!
allLiteralsDo: aBlock
	"This strategy origins from a former implementation of CompiledMethod >> #hasLiteralThorough: as well as AdditionalMethodState >> #hasLiteralSuchThat:."

	"I am a literal."
	aBlock value: self.
	
	"All my components are literals."
	self key allLiteralsDo: aBlock.
	self value allLiteralsDo: aBlock.!
]style[(14 1 6 2 152 3 17 2 6 1 6 1 4 5 33 2 4 1 3 1 14 1 6 3 4 1 5 1 14 1 6 1)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !


!Behavior methodsFor: '*Tools-icons' stamp: 'mt 6/24/2019 10:12'!
toolIconSelector: aSymbol
	"Tools can annotate the method identified by aSymbol with an icon identified by the symbol this method returns.
	We customize this for, eg, overriden methods or methods with breaks.
	Defaults to no icon"

	self methodDictionary at: aSymbol ifPresent: [ :method |
		method hasBreakpoint ifTrue: [^ #breakpoint].
		method allLiteralsDo: [:literal |
			(#(halt halt: haltIfNil haltIf: haltOnce haltOnce: haltOnCount: halt:onCount: break) includes: literal)
				ifTrue: [^ #breakpoint].
			(#(flag: needsWork notYetImplemented) includes: literal)
				ifTrue: [^ #flag].
			(#(shouldBeImplemented subclassResponsibility) includes: literal)
				ifTrue: [
					(self isSelectorOverridden: aSymbol)
						ifTrue: [^ #abstract]
						ifFalse: [^ #notOverridden]].
			literal == #shouldNotImplement
				ifTrue: [^ #no]].
		method hasReportableSlip ifTrue: [^ #breakpoint]].
		
	(self isSelectorOverride: aSymbol)
		ifTrue: [
			(self isSelectorOverridden: aSymbol)
				ifTrue: [ ^ #arrowUpAndDown ]
				ifFalse: [ ^ #arrowUp ] ]
		ifFalse: [
			(self isSelectorOverridden: aSymbol)
				ifTrue: [^ #arrowDown ]].

	self methodDictionary at: aSymbol ifPresent: [ :method |
		(method primitive ~= 0 and: [method isQuick not])
			ifTrue: [^ #primitive]].
	

	^ #blank!
]style[(17 1 7 2 203 3 4 1 16 1 3 1 7 1 10 4 6 1 1 3 6 1 13 1 7 1 1 1 1 11 1 4 6 1 14 1 1 1 7 1 1 4 1 1 1 4 1 5 1 9 1 7 1 8 1 9 1 12 1 13 1 5 2 9 1 7 1 5 7 1 1 1 1 11 1 5 1 1 1 5 1 9 1 17 2 9 1 7 1 5 7 1 1 1 1 5 1 5 1 1 1 19 1 22 2 9 1 7 1 5 7 1 1 6 5 1 21 1 7 1 7 7 1 2 1 9 1 7 8 1 2 1 14 1 1 5 7 1 2 1 19 5 7 1 1 1 1 3 1 1 4 6 1 17 1 7 1 1 1 1 11 1 8 4 1 19 1 7 4 7 6 1 4 1 21 1 7 1 5 7 1 1 1 1 1 15 1 1 5 8 1 1 1 1 1 8 1 1 5 8 6 1 4 1 21 1 7 1 5 7 1 1 1 1 10 1 1 5 4 1 16 1 3 1 7 1 10 4 6 1 1 3 1 6 1 9 1 2 1 1 1 4 1 1 6 1 7 1 3 1 1 4 7 1 1 1 1 10 1 7 1 1 6)b,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,cgray;,cblack;,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c126000126,c126000000,cblack;,c000000126,c126000126,cblack;,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c126000126,c126000000,cblack;,c000000126,c126000126,cblack;,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c126000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,c126000000,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,c126000000,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,c126000000,c126000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000126,c126000000,cblack;,c000000126,c126000126,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000126000,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,c000126000,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,c000126000,cblack;,c126000000,cblack;,c000000126! !


!Binding methodsFor: 'literals' stamp: 'mt 6/24/2019 09:22'!
allLiteralsDo: aBlock

	"I am a literal."
	aBlock value: self.
	
	self key allLiteralsDo: aBlock.
	self value allLiteralsDo: aBlock.!
]style[(14 1 6 3 17 2 6 1 6 1 4 5 4 1 3 1 14 1 6 3 4 1 5 1 14 1 6 1)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !


!ChangeSorter methodsFor: 'toolbuilder' stamp: 'mt 6/24/2019 08:17'!
buildWith: builder in: window rect: rect
	| csListHeight msgListHeight csMsgListHeight listSpec textSpec |
	contents := ''.
	csListHeight := 0.25.
	msgListHeight := 0.25.
	csMsgListHeight := csListHeight + msgListHeight.

	listSpec := builder pluggableListSpec new.
	listSpec 
		model: self;
		list: #changeSetList; 
		getSelected: #currentCngSet; 
		setSelected: #showChangeSetNamed:; 
		menu: #changeSetMenu:shifted:; 
		keyPress: #changeSetListKey:from:;
		dragItem: #dragChangeSet:;
		autoDeselect: false;
		frame: (((0@0 extent: 0.5@csListHeight)
			scaleBy: rect extent) translateBy: rect origin).
	window children add: listSpec.

	listSpec := builder pluggableListSpec new.
	listSpec 
		model: self;
		list: #classList; 
		getSelected: #currentClassName; 
		setSelected: #currentClassName:; 
		menu: #classListMenu:shifted:; 
		keyPress: #classListKey:from:;
		dragItem: #dragClass:;
		frame: (((0.5@0 extent: 0.5@csListHeight)
			scaleBy: rect extent) translateBy: rect origin).
	window children add: listSpec.

	listSpec := builder pluggableListSpec new.
	listSpec 
		model: self;
		list: #messageList; 
		getSelected: #currentSelector;
		setSelected: #currentSelector:; 
		menu: #messageMenu:shifted:; 
		keyPress: #messageListKey:from:;
		dragItem: #dragMessage:;
		frame: (((0@csListHeight extent: 1@msgListHeight)
			scaleBy: rect extent) translateBy: rect origin).
	window children add: listSpec.

	textSpec := builder pluggableTextSpec new.
	textSpec 
		model: self;
		getText: #contents; 
		setText: #contents:notifying:; 
		selection: #contentsSelection; 
		menu: #codePaneMenu:shifted:;
		frame: (((0@csMsgListHeight corner: 1@1) scaleBy: rect extent) translateBy: rect origin).
	window children add: textSpec.
	^window! !

!ChangeSorter methodsFor: 'dragging' stamp: 'mt 6/24/2019 08:16'!
dragChangeSet: anIndex

	anIndex = 0 ifTrue: [^ nil].
	^ ChangesOrganizer changeSetNamed: (self changeSetList at: anIndex) ! !

!ChangeSorter methodsFor: 'dragging' stamp: 'mt 6/24/2019 08:24'!
dragClass: anIndex

	anIndex = 0 ifTrue: [^ nil].
	^ (Smalltalk classNamed: (self basicClassList at: anIndex)) classReference! !

!ChangeSorter methodsFor: 'dragging' stamp: 'mt 6/24/2019 08:23'!
dragMessage: anIndex

	anIndex = 0 ifTrue: [^ nil].
	^ MethodReference
		class: self selectedClassOrMetaClass
		selector: (self basicMessageList at: anIndex)! !


!CompiledCode methodsFor: 'literals' stamp: 'mt 6/5/2019 13:14'!
allLiterals
	
	^ Array streamContents: [:result |
		self allLiteralsDo: [:lit | result nextPut: lit]]!
]style[(11 4 1 7 15 3 6 1 1 3 4 1 14 1 1 1 3 1 1 1 6 1 8 1 3 1 1)b,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;! !

!CompiledCode methodsFor: 'literals' stamp: 'mt 6/5/2019 11:01'!
allLiteralsDo: aBlock

	self literalsDo: [:literal |
		literal allLiteralsDo: aBlock].!
]style[(14 1 6 3 4 1 11 3 7 1 1 3 7 1 14 1 6 2)b,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !

!CompiledCode methodsFor: 'literals' stamp: 'mt 5/28/2019 14:08'!
literals
	
	^ Array streamContents: [:result |
		self literalsDo: [:lit | result nextPut: lit]]!
]style[(8 4 1 7 15 3 6 1 1 3 4 1 11 1 1 1 3 1 1 1 6 1 8 1 3 1 1)b,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;! !

!CompiledCode methodsFor: 'literals' stamp: 'mt 6/5/2019 11:13'!
literalsDo: aBlock
	"Evaluate aBlock for each of the literals referenced by the receiver."
	
	1 to: self numLiterals do: [:index |
		aBlock value: (self objectAt: index + 1)].!
]style[(11 1 6 2 70 4 1 1 3 1 4 1 11 1 3 3 5 1 1 3 6 1 6 1 1 4 1 9 1 5 1 1 1 1 1 2)b,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,c000126000,cblack;! !


!CompiledBlock methodsFor: 'literals' stamp: 'mt 6/24/2019 09:38'!
allLiteralsDo: aBlock
	"Overwritten to not cause infinite loop. The last literal in a compiled block is its outer context (or home method)."

	"I am a literal."
	aBlock value: self.

	"All but the last of my 'literals' are (unseen) literals."
	1 to: self numLiterals - 1 do: [:index |
		(self objectAt: index + 1) allLiteralsDo: aBlock].!
]style[(14 1 6 2 117 3 17 2 6 1 6 1 4 4 58 2 1 1 3 1 4 1 11 1 1 1 1 1 3 3 5 1 1 3 1 4 1 9 1 5 1 1 1 1 1 1 14 1 6 2)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;! !


!CompiledMethod methodsFor: 'file in/out' stamp: 'mt 6/5/2019 11:36'!
objectForDataStream: refStrm
	"Reconfigure pragma. Example: #(#FFTPlugin #primitiveFFTTransformData 0 0). See FFT >> #pluginTransformData:."

	self primitive = 117 ifTrue: [(self literalAt: 1) at: 4 put: 0].!
]style[(20 1 7 2 110 3 4 1 9 1 1 1 3 1 7 2 1 4 1 10 1 1 1 1 3 1 1 1 4 1 1 2)b,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,c126000000,cblack;,c000000126,cblack;,c126000000,c000126000,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000000,cblack;! !


!DeepCopier methodsFor: 'like fullCopy' stamp: 'mt 6/5/2019 10:33'!
checkClass: aClass
	| meth |
	"Check that no indexes of instance vars have changed in certain classes.  If you get an error in this method, an implementation of veryDeepCopyWith: needs to be updated.  The idea is to catch a change while it is still in the system of the programmer who made it."

	self checkBasicClasses.	"Unlikely, but important to catch when it does happen."

	"Every class that implements veryDeepInner: must copy all its inst vars.  Danger is that a user will add a new instance variable and forget to copy it.  So check that the last one is mentioned in the copy method."
	(aClass includesSelector: #veryDeepInner:) ifTrue: [ 
		((aClass compiledMethodAt: #veryDeepInner:) writesField: aClass instSize) ifFalse: [
			aClass instSize > 0 ifTrue: [
				self warnIverNotCopiedIn: aClass sel: #veryDeepInner:]]].
	(aClass includesSelector: #veryDeepCopyWith:) ifTrue: [
		meth := aClass compiledMethodAt: #veryDeepCopyWith:.
		(meth size > 20) & (meth hasLiteral: #veryDeepCopyWith:) not ifTrue: [
			(meth writesField: aClass instSize) ifFalse: [
				self warnIverNotCopiedIn: aClass sel: #veryDeepCopyWith:]]].
!
]style[(11 1 6 2 1 1 4 1 1 2 264 3 4 1 17 2 55 3 213 3 6 1 17 1 15 2 7 6 1 1 6 1 17 1 15 1 1 12 1 6 1 8 1 1 8 1 1 4 6 1 8 1 1 1 1 1 7 1 1 5 4 1 20 1 6 1 4 1 15 1 1 5 6 1 17 1 18 2 7 5 4 1 2 1 6 1 17 1 18 4 1 4 1 4 1 1 1 2 1 1 1 1 1 4 1 11 1 18 1 1 3 1 7 1 1 4 1 4 1 12 1 6 1 8 1 1 8 1 1 5 4 1 20 1 6 1 4 1 18 1 1 3)b,cblack;,c000000126,cblack;,cgray;,cblack;,c106106106,cblack;,cgray;,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000126126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c106106106,cblack;,b,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c106106106,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,c000126000,cblack;,c000000126,cblack;,c000126000,c106106106,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,cblack;,c126000126,c106106106,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c126000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,c000126000,cblack;! !

!DeepCopier methodsFor: 'like fullCopy' stamp: 'mt 6/5/2019 10:33'!
checkVariables
	"Check that no indexes of instance vars have changed in certain classes.  If you get an error in this method, an implementation of veryDeepCopyWith: needs to be updated.  The idea is to catch a change while it is still in the system of the programmer who made it.  
	DeepCopier new checkVariables	"

	self checkBasicClasses.

	"Every class that implements veryDeepInner: must copy all its inst vars.  Danger is that a user will add a new instance variable and forget to copy it.  So check that the last one is mentioned in the copy method."
	(self systemNavigation allClassesImplementing: #veryDeepInner:) do: 
			[:aClass | 
			((aClass compiledMethodAt: #veryDeepInner:) writesField: aClass instSize) 
				ifFalse: 
					[aClass instSize > 0 
						ifTrue: [self warnIverNotCopiedIn: aClass sel: #veryDeepInner:]]].
	(self systemNavigation allClassesImplementing: #veryDeepCopyWith:) do: 
			[:aClass | 
			| meth |
			meth := aClass compiledMethodAt: #veryDeepCopyWith:.
			meth size > 20 & (meth hasLiteral: #veryDeepCopyWith:) not 
				ifTrue: 
					[(meth writesField: aClass instSize) 
						ifFalse: [self warnIverNotCopiedIn: aClass sel: #veryDeepCopyWith:]]]!
]style[(14 2 298 3 4 1 17 4 213 3 4 1 16 1 23 1 15 2 3 7 6 1 1 5 1 1 6 1 17 1 15 1 1 12 1 6 1 8 1 6 8 7 1 6 1 8 1 1 1 1 8 7 1 1 4 1 20 1 6 1 4 1 15 1 1 5 4 1 16 1 23 1 18 2 3 7 6 1 1 5 1 1 4 1 1 4 4 1 2 1 6 1 17 1 18 5 4 1 4 1 1 1 2 1 1 1 1 4 1 11 1 18 1 1 3 6 7 7 1 1 4 1 12 1 6 1 8 1 8 8 1 1 4 1 20 1 6 1 4 1 18 1 1 1)b,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000126000,c126000126,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000126000,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c126000126,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,cgray;,cblack;,cgray;,cblack;,cgray;,cblack;,cgray;,cblack;,b,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c126000000,cblack;,c000000126,cblack;,c000126000,cgray;,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,c126000126,cgray;,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,cblack;,c000000126,cblack;,c126000126,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c126000126,c000126000,cblack;! !


!Pragma methodsFor: 'literals' stamp: 'mt 6/5/2019 10:59'!
allLiteralsDo: aBlock

	keyword allLiteralsDo: aBlock.
	arguments allLiteralsDo: aBlock.!
]style[(14 1 6 11 14 1 6 13 14 1 6 1)b,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !

!Pragma methodsFor: 'literals' stamp: 'mt 5/28/2019 12:34'!
hasLiteral: aLiteral
	"Extra support for #hasLiteralTest:."
	
	^ (super hasLiteral: aLiteral)
		or: [keyword == #hasLiteralTest: and: [
			self methodClass theNonMetaClass perform: arguments first with: aLiteral]]!
]style[(11 1 8 2 37 4 1 2 5 1 11 1 8 4 3 10 2 1 16 1 4 1 1 4 4 1 11 1 15 1 8 11 5 1 5 1 8 1 1)b,cblack;,c000000126,cblack;,c000126126,cblack;,c126000000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000126000,cblack;,c126000000,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,c000126000,cblack;! !


!WrappedBreakpoint methodsFor: 'literals' stamp: 'mt 6/24/2019 09:49'!
allLiteralsDo: aBlock
	"This method is necessary to show the breakpoint-flag in the browser."
	
	aBlock value: #break.
	method allLiteralsDo: aBlock.!
]style[(14 1 6 2 70 4 6 1 6 1 6 10 14 1 6 1)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !

!WrappedBreakpoint methodsFor: 'literals' stamp: 'mt 6/5/2019 11:25'!
literalsDo: aBlock
	"This method is necessary to show the breakpoint-flag in the browser."
	
	aBlock value: #break.
	method literalsDo: aBlock.!
]style[(11 1 6 2 70 4 6 1 6 1 6 10 11 1 6 1)b,cblack;,c000000126,cblack;,c000126126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;,c000000126,cblack;! !

Pragma removeSelector: #hasLiteralSuchThat:!
Pragma removeSelector: #literalsDo:!

!Pragma reorganize!
('accessing-method' method methodClass selector)
('accessing-pragma' argumentAt: arguments key keyword message numArgs)
('initialization' setArguments: setKeyword: setMethod:)
('printing' printOn:)
('testing')
('comparing' = analogousCodeTo: hash)
('literals' allLiteralsDo: hasLiteral:)
!

Global removeSelector: #literalsDo:!

!Global reorganize!
('converting' asBinding:)
('initialize-release' initializeWithKey:value:)
('comparing')
('evaluating' value)
('accessing' value:)
('literals' literalEqual:)
!

CompiledMethod removeSelector: #allLiterals!
CompiledMethod removeSelector: #allLiteralsDo:!
CompiledMethod removeSelector: #hasLiteral:!
CompiledMethod removeSelector: #hasLiteralSuchThat:!
CompiledMethod removeSelector: #hasLiteralThorough:!
CompiledMethod removeSelector: #literalsDo:!
CompiledBlock removeSelector: #allLiterals!
CompiledBlock removeSelector: #allSubLiterals!
CompiledBlock removeSelector: #hasLiteral:!
CompiledBlock removeSelector: #hasLiteralSuchThat:!
CompiledBlock removeSelector: #literalsDo:!
ClassBinding removeSelector: #literalsDo:!

!ClassBinding reorganize!
('converting' asBinding:)
('accessing' canAssign value:)
('initialize-release' initializeWithKey:value:)
('testing' isSpecialWriteBinding)
('comparing')
('evaluating' value)
('literals' literalEqual:)
!

ChangeSorter removeSelector: #drag:!
ChangeSorter removeSelector: #dragMethod:!

!Alias reorganize!
('converting' asBinding:)
('initialization' initializeWithKey:source:)
('testing' isSpecialReadBinding isSpecialWriteBinding)
('error handling')
('accessing' source value:)
('evaluating' value)
('literals' literalEqual:)
!


!Binding reorganize!
('comparing' analogousCodeTo:)
('accessing' canAssign source)
('testing' isSpecialReadBinding isSpecialWriteBinding)
('objects from disk' objectForDataStream:)
('printing' printOn:)
('literals' allLiteralsDo:)
!

Association removeSelector: #hasLiteral:!
Association removeSelector: #literalsDo:!

!Association reorganize!
('accessing' key:value: value value:)
('comparing' = analogousCodeTo: hash)
('filter streaming' byteEncode:)
('printing' printOn: storeOn:)
('testing' isSpecialWriteBinding)
('*services-base-preferences' serviceUpdate)
('*environments' asBinding:)
('*JSON-writing' jsonWriteOn:)
('*vivide' acceptObjectService: asScript storeCompactOn:)
('*ston-core' stonOn:)
('literals' allLiteralsDo: literalEqual:)
!

Array removeSelector: #hasLiteral:!
Array removeSelector: #hasLiteralSuchThat:!
Array removeSelector: #literalsDo:!

!Array reorganize!
('accessing' atWrap: atWrap:put:)
('arithmetic' +* preMultiplyByArray: preMultiplyByMatrix:)
('comparing')
('converting' asArray elementsExchangeIdentityWith: elementsForwardIdentityTo: elementsForwardIdentityTo:copyHash: evalStrings)
('copying' copyWithDependent:)
('filter streaming' byteEncode:)
('printing' printAsBraceFormOn: printAsLiteralOn: printOn: storeOn:)
('self evaluating')
('testing' isArray isLiteral isLiteralIfContainedBy: shouldBePrintedAsLiteral shouldBePrintedAsLiteralVisiting:)
('private' replaceFrom:to:with:startingAt:)
('sorting' sorted:)
('*System-Object Storage-file in/out' objectForDataStream:)
('*monticellofiletree-core' writeCypressJsonOn:forHtml:indent:)
('*vivide' storeCompactOn:)
('*Etoys-Squeakland-comparing' hashMappedBy:)
('*Etoys-Squeakland-translating' literalStringsDo:)
('literals' allLiteralsDo: literalEqual:)
!

AdditionalMethodState removeSelector: #hasLiteralSuchThat:!
AdditionalMethodState removeSelector: #hasLiteralThorough:!
AdditionalMethodState removeSelector: #literalsDo:!

!AdditionalMethodState reorganize!
('testing' analogousCodeTo: hasAtLeastTheSamePropertiesAs: includes: includesKey: isEmpty isMethodProperties notEmpty)
('accessing' at: at:ifAbsent: at:ifAbsentPut: at:put: keysAndValuesDo: method methodHome pragmas properties removeKey:ifAbsent: selector selector: setMethod:)
('copying' copyWith: copyWithout: postCopy)
('properties' includesProperty: propertyKeysAndValuesDo: propertyValueAt: propertyValueAt:ifAbsent: removeKey:)
('decompiling' method:)
('*Traits-NanoKernel' originalTraitMethod originalTraitOrClass)
('printing' printOn:)
('literals' allLiteralsDo:)
!

Object removeSelector: #literalsDo:!

!Object reorganize!
('accessing' at: at:modify: at:put: basicAt: basicAt:put: basicSize bindWithTemp: enclosedSetElement ifNil:ifNotNilDo: ifNotNilDo: ifNotNilDo:ifNil: in: presenter readFromString: size yourself)
('associating' ->)
('binding' bindingOf:)
('casing' caseOf: caseOf:otherwise:)
('class membership' class inheritsFromAnyIn: isKindOf: isKindOf:orOf: isMemberOf: respondsTo: xxxClass)
('comparing' closeTo: hash identityHashPrintString literalEqual: = ~=)
('converting' adaptToFloat:andCompare: adaptToFloat:andSend: adaptToFraction:andCompare: adaptToFraction:andSend: adaptToInteger:andCompare: adaptToInteger:andSend: adaptToScaledDecimal:andCompare: asOrderedCollection asSetElement asString asStringOrText as: changeClassTo: complexContents mustBeBoolean mustBeBooleanIn: printDirectlyToDisplay withoutListWrapper)
('copying' copy copyAddedStateFrom: copyFrom: copySameFrom: copyTwoLevel deepCopy initialDeepCopierSize postCopy shallowCopy veryDeepCopy veryDeepCopySibling veryDeepCopyUsing: veryDeepCopyWith: veryDeepFixupWith: veryDeepInner:)
('debugging' haltIf: needsWork)
('debugging-haltOnce' checkHaltCountExpired clearHaltOnce decrementAndCheckHaltCount decrementHaltCount doExpiredHaltCount doExpiredHaltCount: doExpiredInspectCount haltOnCount: haltOnce haltOnceEnabled haltOnce: halt:onCount: hasHaltCount inspectOnCount: inspectOnce inspectUntilCount: removeHaltCount setHaltCountTo: setHaltOnce toggleHaltOnce)
('dependents access' addDependent: breakDependents canDiscardEdits dependents evaluate:wheneverChangeIn: hasUnacceptedEdits myDependents myDependents: release removeDependent:)
('drag and drop' acceptDroppingMorph:event:inMorph: dragPassengerFor:inMorph: dragStartedFor:transferMorph: dragTransferTypeForMorph: wantsDroppedMorph:event:inMorph:)
('error handling' assert: assert:descriptionBlock: assert:description: backwardCompatibilityOnly: caseError deprecated deprecated: deprecated:block: doesNotUnderstand: dpsTrace: dpsTrace:levels: dpsTrace:levels:withContext: error error: halt halt: handles: notify: notify:at: primitiveFailed primitiveFailed: shouldBeImplemented shouldNotImplement subclassResponsibility traitConflict)
('evaluating' value valueWithArguments:)
('filter streaming' byteEncode: drawOnCanvas: elementSeparator encodePostscriptOn: flattenOnStream: fullDrawPostscriptOn: putOn: writeOnFilterStream:)
('flagging' isThisEverCalled isThisEverCalled: logEntry logExecution logExit)
('graph model' addModelYellowButtonMenuItemsTo:forMorph:hand: hasModelYellowButtonMenuItems)
('macpal' codeStrippedOut: contentsChanged flash instanceVariableValues isUniversalTiles objectRepresented refusesToAcceptCode scriptPerformer slotInfo)
('message handling' executeMethod: perform: perform:orSendTo: perform:with:with:with:with: perform:with:with:with:with:with: perform:withArguments: perform:withArguments:inSuperclass: perform:withEnoughArguments: perform:with: perform:with:with: perform:with:with:with: withArgs:executeMethod: with:executeMethod: with:with:executeMethod: with:with:with:executeMethod: with:with:with:with:executeMethod:)
('objects from disk' comeFullyUpOnReload: convertToCurrentVersion:refStream: fixUponLoad:seg: objectForDataStream: readDataFrom:size: saveOnFile saveOnFileNamed: storeDataOn:)
('printing' fullPrintString isLiteral longPrintOn: longPrintOn:limitedTo:indent: longPrintString longPrintStringLimitedTo: nominallyUnsent: printOn: printString printStringLimitedTo: printWithClosureAnalysisOn: reportableSize storeOn: storeString stringForReadout stringRepresentation)
('scripting' adaptedToWorld: defaultFloatPrecisionFor: evaluateUnloggedForSelf: methodInterfacesForCategory:inVocabulary:limitClass: methodInterfacesForInstanceVariablesCategoryIn: methodInterfacesForScriptsCategoryIn: selfWrittenAsIll selfWrittenAsIm selfWrittenAsMe selfWrittenAsMy selfWrittenAsThis)
('system primitives' asOop className creationStamp instVarAt: instVarAt:put: instVarNamed: instVarNamed:put: oopString primitiveChangeClassTo: rootStubInImageSegment: someObject)
('testing' beViewed belongsToUniClass costumes haltIfNil isArray isBehavior isBlock isBoolean isCharacter isClassReference isClosure isCodeReference isCollection isColor isColorForm isCompiledCode isCompiledMethod isComplex isContext isDictionary isFloat isForm isFraction isHeap isInteger isInterval isMessageSend isMethodContext isMethodProperties isMethodReference isMorph isMorphicEvent isMorphicModel isNumber isPlayer isPoint isPrimitiveCostume isPromise isRectangle isScriptEditorMorph isSketchMorph isStream isString isSymbol isSystemWindow isText isTextView isTrait isTransparent isVariableBinding isWebBrowser isWindowForModel: knownName name nameForViewer renameInternal: renameTo: shouldBePrintedAsLiteral shouldBePrintedAsLiteralVisiting: showDiffs stepAt:in: stepIn: stepTime stepTimeIn: vocabularyDemanded wantsDiffFeedback wantsSteps wantsStepsIn:)
('updating' changed changed: changed:with: handledListVerification noteSelectionIndex:for: okToChange okToClose updateListsAndCodeIn: update: update:with: windowIsClosing)
('user interface' addModelItemsToWindowMenu: addModelMenuItemsTo:forMorph:hand: asExplorerString defaultLabelForInspector launchPartVia: launchPartVia:label: launchTileToRefer modelSleep modelWakeUp modelWakeUpIn: mouseUpBalk: notYetImplemented windowActiveOnFirstClick windowReqNewLabel:)
('*monticello' isConflict)
('*services-base' requestor)
('*system-support' isPrimitiveError systemNavigation)
('*Tools-Explorer' explore exploreWithLabel:)
('*tools-browser' browseHierarchy)
('private' errorImproperStore errorNonIntegerIndex errorNotIndexable errorSubscriptBounds: setPinned: species storeAt:inTempFrame:)
('thumbnail' iconOrThumbnailOfSize:)
('*Morphic-Explorer' explorerContents hasContentsInExplorer)
('futures' future future: futureDo:at:args: futureSend:at:args:)
('*Etoys-viewer' assureUniClass browseOwnClassSubProtocol categoriesForViewer: categoriesForVocabulary:limitClass: chooseNewNameForReference defaultLimitClassForVocabulary: defaultNameStemForInstances elementTypeFor:vocabulary: externalName graphicForViewerTab hasUserDefinedSlots infoFor:inViewer: initialTypeForSlotNamed: isPlayerLike methodInterfacesInPresentationOrderFrom:forCategory: newScriptorAround: newTileMorphRepresentative offerViewerMenuFor:event: offerViewerMenuForEvt:morph: renameScript: tilePhrasesForCategory:inViewer: tilePhrasesForMethodInterfaces:inViewer: tilePhrasesForSelectorList:inViewer: tileToRefer uniqueInstanceVariableNameLike:excluding: uniqueNameForReference uniqueNameForReferenceFrom: uniqueNameForReferenceOrNil updateThresholdForGraphicInViewerTab usableMethodInterfacesIn:)
('*Protocols' currentVocabulary haveFullProtocolBrowsed haveFullProtocolBrowsedShowingSelector:)
('*Etoys-tiles' basicType)
('*Tools-MessageSets' browseAllCallsOn: browseAllImplementorsOf:)
('*Tools-multi-window support' canHaveUnacceptedEdits)
('*morphic' asDraggableMorph asMorph asStringMorph asTextMorph isPluggableListMorph openAsMorph)
('*MorphicExtras-Undo' capturedState commandHistory purgeAllCommands redoFromCapturedState: refineRedoTarget:selector:arguments:in: refineUndoTarget:selector:arguments:in: rememberCommand: rememberUndoableAction:named: undoFromCapturedState:)
('*MorphicExtras-PartsBin' descriptionForPartsBin)
('tracing' inboundPointers inboundPointersExcluding: outboundPointers outboundPointersDo:)
('*Tools-Debugger' canonicalArgumentName chasePointers explorePointers shouldFollowOutboundPointers)
('*System-Object Events-accessing' actionForEvent: actionForEvent:ifAbsent: actionMap actionSequenceForEvent: actionsDo: createActionMap hasActionForEvent: setActionSequence:forEvent: updateableActionMap)
('*System-Change Notification-events' actionsWithReceiver:forEvent: renameActionsWithReceiver:forEvent:toEvent:)
('*System-Change Notification-converting' asActionSequence asActionSequenceTrappingErrors)
('*System-Tools-breakpoint' break)
('*ToolBuilder-Kernel-error handling' confirm: confirm:orCancel:)
('*EToys-user interface' eToyStreamedRepresentationNotifying:)
('*ToolBuilder-Kernel-user interface' inform:)
('*System-Support-user interface' initialExtent)
('*System-Localization-locales' localeChanged localeChangedGently translatedNoop)
('*System-Object Events-accessing-removing' releaseActionMap removeAction:forEvent: removeActionsForEvent: removeActionsSatisfying: removeActionsSatisfying:forEvent: removeActionsWithReceiver: removeActionsWithReceiver:forEvent:)
('*System-Object Events-accessing-triggering' triggerEvent: triggerEvent:ifNotHandled: triggerEvent:with: triggerEvent:with:ifNotHandled: triggerEvent:withArguments: triggerEvent:withArguments:ifNotHandled:)
('*System-Object Events-accessing-registering' when:evaluate: when:send:to: when:send:to:with: when:send:to:withArguments:)
('*Tools-inspecting' basicInspect inspect inspectWithLabel: inspectorClass)
('*Traits' explicitRequirement requirement)
('*Graphics-KernelExtensions' fullScreenSize)
('*System-Finalization' actAsExecutor executor finalizationRegistry finalize hasMultipleExecutors retryWithGC:until: toFinalizeSend:to:with:)
('*collections' asLink compareSafely:)
('*Tools-Browsing' browse)
('*System-Recovery-error handling' primitiveError:)
('*animations-support' compositeAnimations)
('*Tools-error handling' notifyWithLabel:)
('*SUnit-testing' isTestClass)
('*51Deprecated' defaultBackgroundColor dragAnimationFor:transferMorph:)
('*Morphic-Events-Filtering' filterEvent:for:)
('*System-Preferences' applyUserInterfaceTheme canApplyUserInterfaceTheme userInterfaceTheme)
('*metacello-core' metacelloIntegerLessThanSelf: metacelloSemanticIntegerLessThanSelf: metacelloSemanticStringLessThanSelf: metacelloSemanticVersionComponentLessThan: metacelloStringLessThanSelf: metacelloVersionComponentLessThan:)
('*monticellofiletree-core' writeCypressJsonForHtmlOn:indent: writeCypressJsonOn:forHtml:indent: writeCypressJsonOn:indent:)
('*signals-core' connect:signal:to:selector: connect:signal:to:selector:pattern: connect:signal:to:selector:pattern:queue: connect:signal:to:selector:pattern:queue:blocking: connect:signal:to:selector:queue: connect:signal:to:selector:queue:blocking: connect:signal:toSelector: connect:signal:toSelector:pattern: connect:signal:toSelector:pattern:queue: connect:signal:toSelector:pattern:queue:blocking: connect:signal:toSelector:queue: connect:signal:toSelector:queue:blocking: createAutoSignalConnections disconnectAllSignals disconnectSignal: disconnectSignal:from: disconnectSignal:from:selector: emit emitAlways)
('*signals-core-private' connectSignal:to:selector:pattern:queue:blocking: emitSignal:arguments:sender: hasSignalConnections signalConnections signalConnectionsRepository signalMutex)
('*widgets-events' isEventHandler)
('*widgettools-scripts' breakhere: breaktime:)
('*JSON' asJsonString)
('*vivide' <- acceptObjectService: asList asScript classBehindProxy compactStoreString drag hasVivideTools isList isScript isScriptDefinition open retain storeCompactOn:)
('*MethodWrappers' isMwMethodWrapper synchronize unsynchronize)
('*Etoys-Squeakland-accessing' customizeExplorerContents)
('*Etoys-Squeakland-comparing' eToysEQ: eToysGE: eToysGT: eToysLE: eToysLT: eToysNE:)
('*Etoys-Squeakland-error handling' eToysError:)
('*Etoys-Squeakland-Etoys-viewer' hasUserDefinedScripts)
('*Etoys-Squeakland-translation support' inline:)
('*Etoys-Squeakland-testing' isReallyString)
('*Etoys-Squeakland-user interface' launchPartOffsetVia:label:)
('*Etoys-Squeakland-translating' literalStringsDo:)
('*Etoys-Squeakland-Tweak-Kedama' test:ifTrue:ifFalse: times:repeat:)
('*Tools' environment)
('*60Deprecated-copying' clone)
('pinning' isPinned pin unpin)
('*Morphic-Kernel' currentEvent currentHand currentWorld)
('*EToys-Scripting-accessing' addInstanceVarNamed:withValue: basicAddInstanceVarNamed:withValue:)
('*60Deprecated-Tools' exploreAndYourself)
('*ston-core' fromSton: isStonReference stonContainSubObjects stonOn: stonPostReferenceResolution stonProcessSubObjects: stonShouldWriteNilInstVars)
('*Squot' browseFromSquot: hasSquotShadowName squotDecoratedLike: undecorated)
('*Squot-trackable' captureWithSquot squotAddTransientStoreInfoTo: squotInitializeStoreInfo: squotRemoveTransientStoreInfoFrom:)
('*Squot-trackable-capturing' captureWithSquot: shouldHaveNameAssignedBySquot squotCaptureSlotsIn:with: squotReactivateWith: squotRelevantInstVars squotReplacementFor: squotShadowFactory squotShouldKeepIdentity)
('*Squot-serializing' squotWrite:with:)
('*Squit' squitBrowserSupplementObjectMenu:)
('literals' allLiteralsDo: hasLiteral: hasLiteralSuchThat: hasLiteralThorough:)
!

