Chris Muller uploaded a new version of Compiler to project The Trunk:
http://source.squeak.org/trunk/Compiler-cmm.297.mcz==================== Summary ====================
Name: Compiler-cmm.297
Author: cmm
Time: 23 March 2015, 7:54:50.696 pm
UUID: 1d7e980a-3504-44fa-9a9c-803bf3a6bda2
Ancestors: Compiler-topa.296
DoIt evaluation in the debugger needs to be from the selected Context's methodClass, not the receiver's class so that "super" will refer to the correct class.
=============== Diff against Compiler-topa.296 ===============
Item was changed:
----- Method: Compiler>>evaluate:in:to:notifying:ifFail:logged: (in category 'public access logging') -----
evaluate: textOrStream in: aContext to: receiver notifying: aRequestor ifFail: failBlock logged: logFlag
"Compiles the sourceStream into a parse tree, then generates code into
a method. If aContext is not nil, the text can refer to temporaries in that
context (the Debugger uses this). If aRequestor is not nil, then it will receive
a notify:at: message before the attempt to evaluate is aborted. Finally, the
compiled method is invoked from here via withArgs:executeMethod:, hence
the system no longer creates Doit method litter on errors."
-
| theClass |
+ theClass := (aContext == nil ifTrue: [receiver class] ifFalse: [aContext methodClass]).
- theClass := ((aContext == nil ifTrue: [receiver] ifFalse: [aContext receiver]) class).
^self
evaluateCue: (CompilationCue
source: textOrStream
context: aContext
receiver: receiver
class: theClass
environment: theClass environment
requestor: aRequestor)
ifFail: failBlock
logged: logFlag!