here's an example of a problematic case:
```dart
var last = { 'a': null };
var current = { 'b': 123 };
```
Here, `last.length == current.length`. Next we'll iterate last.keys, and see that `last['a'] == current['a']` (both are null) so the code will conclude that the two maps are equal.

(at least that's how I'm reading it, but i might've missed something)