)]}'
{
  "commit": "8b86349ecb336d25691265e8d40ecbd1388f916e",
  "tree": "e6f14c084f938a60281a6b03f4c7def8be6788d6",
  "parents": [
    "583b99e5096c979043a63dcf92bf3f0d5993d03a"
  ],
  "author": {
    "name": "Michael J. Sullivan",
    "email": "sully@msully.net",
    "time": "Wed Oct 02 10:38:27 2019 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Oct 02 10:38:27 2019 -0700"
  },
  "message": "Fix spurious errors in inherited dataclasses in incremental mode (#7596)\n\nThe dataclasses plugin incorrectly expected json to preserve\r\nthe ordering of its dictionaries, which led to spurious errors\r\nabout \"Attributes without a default cannot follow attributes with one\".\r\n\r\nWorse, the errors are reported in the wrong file: they use the line\r\nnumber of the attribute but the file of the dataclass being checked!\r\n\r\nFix the spurious error by serializing attributes in a list, since we\r\ncare about the order.\r\n\r\nReporting this error for attributes in parent classes is actually\r\nuseful, since multiple inheritance can cause this error. Report the\r\nerror at the class definition site causing the problem instead.\r\n(The error message here could certainly be improved, but right\r\nnow I just want to fix the \"wrong file\" bugs, which are I think\r\nthe worst kind of bugs after crashes.)",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "305b7592e562cb7163127fcad11dc7764c8a8edb",
      "old_mode": 33188,
      "old_path": "mypy/plugins/attrs.py",
      "new_id": "dff696312885b70032f9b27e9ca2276076248d04",
      "new_mode": 33188,
      "new_path": "mypy/plugins/attrs.py"
    },
    {
      "type": "modify",
      "old_id": "f897552a33d94c116742cecdeded7c1710a42829",
      "old_mode": 33188,
      "old_path": "mypy/plugins/dataclasses.py",
      "new_id": "3aa16b020721e753ee3452fd32297c6d3b105e58",
      "new_mode": 33188,
      "new_path": "mypy/plugins/dataclasses.py"
    },
    {
      "type": "modify",
      "old_id": "bc5ad3293290c4f31644220e947372aa69c06f65",
      "old_mode": 33188,
      "old_path": "test-data/unit/check-attr.test",
      "new_id": "02a6e6654d62721f6ba21dc132f28830961cc383",
      "new_mode": 33188,
      "new_path": "test-data/unit/check-attr.test"
    },
    {
      "type": "modify",
      "old_id": "95ed85f22d8f053cc771790f39690744bb2273b1",
      "old_mode": 33188,
      "old_path": "test-data/unit/check-dataclasses.test",
      "new_id": "d76c4a56c6b692f122e53fd65dae01bbbe9058e2",
      "new_mode": 33188,
      "new_path": "test-data/unit/check-dataclasses.test"
    }
  ]
}
