Hello, this is Symbol equality method in Pharo:
1: = aSymbol
2: "Compare the receiver and aSymbol."
3: self == aSymbol ifTrue: [^ true].
4: self class == aSymbol class ifTrue: [^ false].
5: "Use String comparison otherwise"
6: ^ super = aSymbol
Look at line 4 - what does it mean? That's wrong, isn't it?
Typically, every symbol comparisons end up in line 3, but if you do some work with forward proxies for example, condition on line 3 is "false" and then weird things on line 4 happens.
If line 4 and further are correct, can someone explain a little?
Thanks! pf