2017-07-12 9:09 GMT+02:00 Marcus Denker <marcus.denker@inria.fr <mailto: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 .
For Pharo6: https://pharo.fogbugz.com/f/cases/20254/Playground-should-ask-to-create-clas... <https://pharo.fogbugz.com/f/cases/20254/Playground-should-ask-to-create-clas...> This adds a scope for additional bindings and uses this for the bindings, which then allows us to change the requestorscope as needed. Marcus