Strict Symbol Comparison with variables
This is the scenario where two expressions are compared:
varA = varB.
aParameter = varC.
myVar with message send = varD.
As with comparison with literals, we'll take one of two approaches:
Assume that both epressions return the same type
In this case the equality can be left unchanged, and we add an assertion to check the assumption, e.g.:
method1: param1
self assertSameTypeWhenStrict: param1 and: myInstVar.
^ myInstVar = param1
Allow for either type in the comparison
As with the literal comparison, Pharo behaviour is desired, even if strict symbol comparison is enabled. The equality check is then replaced with #sameContentAs:
:
method1: param1
^ myInstVar sameContentAs: param1