elixir-lang/elixir — pull request #1734 by madlep (2013-09-29 12:23:41+00:00)
Title: `Dict.size` incorrectly returning `true` when left dict is subset of right dict

Fixes bug where `true` was incorrectly returned for `Dict.equal?` when the 1st argument was a subset of the 2nd argument.

e.g:
```elixir
iex> h1 = HashDict.new(foo: 1, bar: 2)
iex> h2 = HashDict.new(foo: 1, bar: 2, baz: 3)
iex> Dict.equal?(h1, h2)
true # OOPS
iex> Dict.equal?(h2, h1)
false # works as expected other way round
```

The code to check equality was checking size (incorrectly), and then checking to see if every element in the first dict was present in the 2nd.

However, `size` was being used instead of `Dict.size`. This ended up calling `Kernel.size` instead - and would always return `true` regardless of whever the actual size of the `Dict` arguments were the same or not.