The Trunk: Monticello-dtl.683.mcz

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

The Trunk: Monticello-dtl.683.mcz

David T. Lewis uploaded a new version of Monticello to project The Trunk:

==================== Summary ====================

Name: Monticello-dtl.683
Author: dtl
Time: 13 May 2018, 9:26:12.696956 pm
UUID: 03d28d79-4c73-496f-903d-324e4425c61f
Ancestors: Monticello-dtl.682

Revert last update, which was based on bad assumptions about how a proxy should behave (thanks Levente).
If a proxy doesn't want to forward a message, it can just implement the method. If you want direct access to the proxy object, you can use the mirror primitives.

=============== Diff against Monticello-dtl.682 ===============

Item was removed:
- ----- Method: MCPackageInEnvironment>>perform:with: (in category 'delegating') -----
- perform: aSymbol with: anObject
- "If aSymbol is #== then the sender is trying to perform an identity comparison.
- This cannot be delegated, because the delegate will be a different object.
- Implement perform:with: here to protect for this case. An important example
- is the case of PluggableDictionary, which relies on perform:with: to implement
- comparisons for an identity dictionary."
- aSymbol == #==
- ifTrue: [ ^self privatePerform: aSymbol with: anObject ]
- ifFalse: [ ^package perform: aSymbol with: anObject "as per doesNotUnderStand:" ]
- !

Item was removed:
- ----- Method: MCPackageInEnvironment>>privatePerform:with: (in category 'delegating') -----
- privatePerform: aSymbol with: anObject
- "aSymbol is #== and the sender is trying to perform an identity comparison.
- Invoke primitivePerform."
- <primitive: 83>
- ^ self primitiveFailed!