[squeak-dev] The Trunk: Kernel-nice.1042.mcz
Tim Felgentreff
timfelgentreff at gmail.com
Fri Sep 30 09:23:35 UTC 2016
This breaks compiling EToys scripts when those refer to global classes. I
probably don't understand something here, but for context, EToys players
are not in the global environment, they create their own otherwise empty
environment.
On Thu, 29 Sep 2016 at 10:19 <commits at source.squeak.org> wrote:
> Nicolas Cellier uploaded a new version of Kernel to project The Trunk:
> http://source.squeak.org/trunk/Kernel-nice.1042.mcz
>
> ==================== Summary ====================
>
> Name: Kernel-nice.1042
> Author: nice
> Time: 29 September 2016, 10:15:16.009388 am
> UUID: 8923b113-72cf-414e-802c-cef7c50f8ad1
> Ancestors: Kernel-tfel.1041, Kernel-nice.798
>
> Merge Kernel-nice.798 (variable scope fix, don't resolve name in
> superclass environment)
>
> Reminder: this requires some Smalltalk exportSelf.
>
> =============== Diff against Kernel-tfel.1041 ===============
>
> Item was changed:
> ----- Method: Class>>bindingOf:environment: (in category 'compiling')
> -----
> bindingOf: varName environment: anEnvironment
> "Answer the binding of some variable resolved in the scope of the
> receiver"
> | aSymbol binding |
> aSymbol := varName asSymbol.
>
> + "First look in local classVar dictionary."
> + binding := self classPool bindingOf: aSymbol.
> + binding ifNotNil:[^binding].
> - "First look in classVar dictionary."
> - (self classThatDefinesClassVariable: aSymbol) ifNotNil:
> - [:x | ^x classPool bindingOf: aSymbol].
>
> + "Next look in local shared pools."
> - "Next look in shared pools."
> self sharedPools do:[:pool |
> binding := pool bindingOf: aSymbol.
> binding ifNotNil:[^binding].
> ].
>
> + "Next look into superclass pools"
> + superclass ifNotNil: [^ superclass bindingOf: aSymbol environment:
> anEnvironment].
> +
> + "No more superclass... Last look in declared environment."
> + ^anEnvironment bindingOf: aSymbol
> - "Next look in declared environment."
> - binding := anEnvironment bindingOf: aSymbol.
> - binding ifNotNil:[^binding].
>
> - "Finally look higher up the superclass chain and fail at the end."
> - superclass == nil
> - ifTrue: [^ nil]
> - ifFalse: [^ superclass bindingOf: aSymbol].
> -
> !
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20160930/d225bd28/attachment.htm
More information about the Squeak-dev
mailing list
|