Nicolas Cellier uploaded a new version of Kernel to project The Trunk: http://source.squeak.org/trunk/Kernel-nice.609.mcz
==================== Summary ====================
Name: Kernel-nice.609 Author: nice Time: 20 July 2011, 9:29:30.183 am UUID: 50b9cca2-c2a0-47c3-a367-2eae2ed530de Ancestors: Kernel-eem.608
Use literalEqual: in hasLiteral: and hasLiteralThorough: Remove hasLiteralThorough:from: because it is suspect: - it is not sent - it checks whether aLiteral == aBlock which cannot happen in Squeak implementation - it send hasLiteralThorough: to literals which was weired and is now deprecated
=============== Diff against Kernel-eem.608 ===============
Item was changed: ----- Method: CompiledMethod>>hasLiteral: (in category 'literals') ----- hasLiteral: literal - | litClass lit | "Answer whether the receiver references the argument, literal." - litClass := literal class. 2 to: self numLiterals - 1 do: "exclude superclass + selector/properties" [:index | + ((self objectAt: index) literalEqual: literal) ifTrue: [^true]]. - lit := self objectAt: index. - (litClass == lit class and: [literal = lit]) ifTrue: [^true]]. ^false!
Item was changed: ----- Method: CompiledMethod>>hasLiteralThorough: (in category 'literals') ----- hasLiteralThorough: literal "Answer true if any literal in this method is literal, even if embedded in array structure."
(self penultimateLiteral isMethodProperties and: [self penultimateLiteral hasLiteralThorough: literal]) ifTrue:[^true]. 2 to: self numLiterals - 1 "exclude superclass + selector/properties" do:[:index | | lit | + (((lit := self objectAt: index) literalEqual: literal) - ((lit := self objectAt: index) == literal or: [(lit isVariableBinding and: [lit key == literal]) or: [lit isArray and: [lit hasLiteral: literal]]]) ifTrue: [^ true]]. ^ false !
Item was removed: - ----- Method: CompiledMethod>>hasLiteralThorough:from: (in category 'literals') ----- - hasLiteralThorough: aLiteral from: aBlock - "Answer true if any literal in this method is literal, even if embedded in array structure or within its pragmas." - - | literal | - self pragmas do: [ :pragma | - (pragma hasLiteral: aLiteral) ifTrue: [ ^ true ] ]. - 2 to: self numLiterals + 1 do: [ :index | - literal := self objectAt: index. - literal == aLiteral ifTrue: [ ^ true ]. - literal == aBlock ifFalse:[ (literal hasLiteralThorough: aLiteral) ifTrue: [ ^ true ]] ]. - ^ false.!
packages@lists.squeakfoundation.org