~= is documented as checking if the contents of two lists are the same. When given lists with named keys, it only checks the keys.
Numbered Steps to Reproduce Problem:
Code Snippet (if applicable) to Reproduce Problem:
var/list/L1 = list("a" = 1)
var/list/L2 = list("a" = 2)
world.log << (L1 ~= L2)
Expected Results:
This would be false, as 1 is not 2.
Actual Results:
This is true.
When does the problem NOT occur?
When named lists are not used, or their keys are different.
var/list/L1 = list("a" = 1)
var/list/L2 = list("b" = 1)
world.log << (L1 ~= L2)
If this is not a bug, it should at the very least be documented as this is an enormous gotcha.