Hi, I committed the change Compiler-JorgeRessia.141 Basically the problem was that the interactive mode was not taken into account in the Encode and BytecodeEncoder >> bindTemp: method. bindTemp: name "Declare a temporary; error not if a field or class variable or out-of-scope temp. Read the comment in Encoder>>bindBlockArg:within: and subclass implementations." self supportsClosureOpcodes ifFalse: [^super bindTemp: name]. scopeTable at: name ifPresent: [:node| "When non-interactive raise the error only if it is a duplicate" (node isTemp or: [requestor interactive]) ifTrue:[^self notify:'Name is already defined'] ifFalse:[self warnAboutShadowed: name]]. ^self reallyBind: name We tested it with Lukas and is working fine. However, we should see that there are no further side effects. Cheers, Jorge On Wed, Mar 3, 2010 at 9:37 AM, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
lukas can youreread because I tried to improve thte explanation.
In 1.1 and I think that this is the wrong version of the changes that was introduced because the interface sucks ================= Parser warningAllowed: true
Object subclass: #Zork    instanceVariableNames: 't'
zork
   | t |    t := 1.
I get "t appears to beunused in this method.Ok to remove it?"
Now with    Parser warningAllowed: false
Object subclass: #Zork    instanceVariableNames: 't'
zork
   | t |    t := 1.  the variable t shadows the instance variable without noticed
So for Pharo we get simply for now issue Parser warningAllowed: true to get it to the "normal" behavior.
In 1.0 ================= The interface changes -> Parser warnUser but we have the same silly broken pop up.
Now I checked and in 3.9 =================
we got  'Name is already defined.' which is the correct behavior so it seems that this is not the warning preference that  are responsible of the problem.
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project