On 12 Jul 2017, at 10:51, Marcus Denker <marcus.denker@inria.fr> wrote:


On 12 Jul 2017, at 10:46, Denis Kudriashov <dionisiydk@gmail.com> wrote:


2017-07-12 9:09 GMT+02:00 Marcus Denker <marcus.denker@inria.fr>:
in the workspace it creates a variable (with value nil)��� so it treats upper-case
unknown vars the same as lower case.

I think it might make sense to have for upper case instead the menu that asks
what to do (it could there have a ���add binding to workspace��� entry for the current
way, too)

I would prefer same behaviour like in method editor. I really hate when I made mistake in class name and after evaluation I got uppercase binding with nil value. 

yes, we should fix it. binding should just be created for lower case vars.


How to fix it:

OCRequestorScope is the scope of variables in tools. #lookupVar: is the method that is doing the lookup.

replace the code

global := self lookupGlobalVar: name.
global ifNotNil: [ ^ global ].  

with:

name first isUppercase ifTrue: [ ^ outerScope lookupVar: name].

But: right now we abuse the requesterscope to implement the feature that you can hand
in an additional dictionary with bindings. See testEvaluateWithBindingsWithUppercaseName
This change breaks this feature��� but it just means we need to implement this better, which 
I will do .

Marcus