[squeak-dev] The Trunk: Compiler-mt.319.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Feb 18 09:58:18 UTC 2016

Marcel Taeumel uploaded a new version of Compiler to project The Trunk:

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

Name: Compiler-mt.319
Author: mt
Time: 18 February 2016, 10:58:07.931715 am
UUID: 346cab39-3c65-40cb-9344-293aa4090074
Ancestors: Compiler-mt.318

Even if the requestor does not support interactive error correction, allow for the use of new bindings.

=============== Diff against Compiler-mt.318 ===============

Item was changed:
  ----- Method: Parser>>correctVariable:interval: (in category 'error correction') -----
  correctVariable: proposedVariable interval: spot 
  	"Correct the proposedVariable to a known variable, or declare it as a new
  	variable if such action is requested.  We support declaring lowercase
  	variables as temps or inst-vars, and uppercase variables as Globals or 
  	ClassVars, depending on whether the context is nil (class=UndefinedObject).
  	Spot is the interval within the test stream of the variable.
  	rr 3/4/2004 10:26 : adds the option to define a new class. "
  	"Check if this is an i-var, that has been corrected already (ugly)"
  	"Display the pop-up menu"
  	| binding userSelection action |
  	(encoder classEncoding instVarNames includes: proposedVariable) ifTrue: 
  		[^InstanceVariableNode new 
  			name: proposedVariable
  			index: (encoder classEncoding allInstVarNames indexOf: proposedVariable)].
+ 	"First check to see if the requestor knows anything about the variable"
+ 	(binding := cue requestor ifNotNil: [:object | object bindingOf: proposedVariable])
+ 		ifNotNil: [^encoder global: binding name: proposedVariable].
  	"If we can't ask the user for correction, make it undeclared"
  	self interactive ifFalse: [^encoder undeclared: proposedVariable].
- 	"First check to see if the requestor knows anything about the variable"
- 	(binding := cue requestor bindingOf: proposedVariable)
- 		ifNotNil: [^encoder global: binding name: proposedVariable].
  	userSelection := cue requestor selectionInterval.
  	cue requestor selectFrom: spot first to: spot last.
  	cue requestor select.
  	"Build the menu with alternatives"
  	action := UndeclaredVariable 
  				signalFor: self
  				name: proposedVariable
  				inRange: spot.
  	action ifNil: [^self fail].
  	"Execute the selected action"
  	cue requestor deselect.
  	cue requestor selectInvisiblyFrom: userSelection first to: userSelection last.
  	^action value!

More information about the Squeak-dev mailing list