[squeak-dev] The Inbox: Compiler-ct.422.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Mar 21 22:07:26 UTC 2020

Christoph Thiede uploaded a new version of Compiler to project The Inbox:

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

Name: Compiler-ct.422
Author: ct
Time: 21 March 2020, 11:07:22.79756 pm
UUID: ab5eff73-dbf5-7a4e-96e7-9991c9068f16
Ancestors: Compiler-nice.420

Proposal: Allow to cancel compilation if an unused variable is detected

This way it feels more consistent with UndefinedVariable and UndeclaredVariable.

=============== Diff against Compiler-nice.420 ===============

Item was changed:
  ----- Method: Parser>>removeUnusedTemps: (in category 'error correction') -----
  removeUnusedTemps: methodNode
  	"Scan for unused temp names, and prompt the user about the prospect of removing each one found"
  	| madeChanges tempsMarkHolder unusedTempNames tempMarkHoldersToChange |
  	madeChanges := false.
  	tempMarkHoldersToChange := OrderedCollection new.
  	tempsMarkHolder := self collectTemporaryDeclarationsFrom: methodNode.
  	unusedTempNames := encoder unusedTempNames select: 
  		[ :temp | (encoder lookupVariable: temp ifAbsent: [ ]) isUndefTemp 
+ 			and: [ self queriedUnusedTemporaries at: temp ifAbsentPut: [
+ 				(UnusedVariable name: temp) ifNil: [ ^ self fail ]] ]].
- 				and: [ self queriedUnusedTemporaries at: temp ifAbsentPut: [UnusedVariable name: temp] ]].
  	tempsMarkHolder do: [ :currentBlock | 
  		tempMarkHoldersToChange add: currentBlock.
  		unusedTempNames do: 
  			[ :temp |
  				removeUnusedTemporaryNamed: temp 
  				from: cue requestor text asString 
  				lookingAt: currentBlock
  				movingTempMarksOf: tempMarkHoldersToChange) ifTrue: [ madeChanges := true ]]].
  		ifTrue: [ self removeEmptyTempDeclarationsFrom: methodNode.
  			ReparseAfterSourceEditing signal ]!

Item was changed:
+ ----- Method: UnusedVariable>>openMenuIn: (in category 'handling') -----
- ----- Method: UnusedVariable>>openMenuIn: (in category 'as yet unclassified') -----
  openMenuIn: aBlock
  	self resume: (UIManager default
+ 		confirm: ('{1} appears to be unused in this method.\Remove it from the code?' withCRs translated
+ 			format: {name asText allBold})
+ 		orCancel: [nil]
+ 		title: 'Unused Variable' translated).!
- 		confirm: name asText allBold, ' appears to be unused in this method.\Remove it from the code?' withCRs
- 		title: 'Unused Variable').!

More information about the Squeak-dev mailing list