Ok, I understand. But
The change is correct, here's an example:On 15.09.2011 17:27, Mariano Martinez Peck wrote:Hi guys. I am having a problem with the integration of issue 4538: http://code.google.com/p/pharo/issues/detail?id=4538
I am serializing CompiledMethods with Fuel and then I materialize them. To test they are correct, I use #=
So far it was working correctly, but now for the materialized method it says they are not equal. The problem is that #= is failing in
(self sameLiteralsAs: aCompiledMethod)
And inside that method, it is failing because ��� (literal1 == literal2 or: [ literal1 literalEqual: literal2 ])
answers false.
So... why literal1 literalEqual: literal2 answers false?� from what I can say, having that selector: "literalEqual", then both MUST be equal, because they are.
The problem is that it was added:
Association >> literalEqual: otherLiteral
��� "Answer true if the receiver and otherLiteral represent the same literal.
��� Variable bindings are literally equals only if identical.
��� This is how variable sharing works, by preserving identity and changing only the value."
��� ^self == otherLiteral
So....I am not sure I agree with this change.
Any idea how can we deal with this problem?
Cheers
--
Mariano
http://marianopeck.wordpress.com
Create a global:
Global := 1
Create a method:
�� foo
��� ^Global
Serialize method, deserialize
Change value of global:
Global := 5.
foo should return 5, not 1.
Unless it's actually the same association as in the SystemDictionary, this will not be true.