)]}'
{
  "commit": "b62b438e8aaaf97ea0dae34a059afcdb7ccd831e",
  "tree": "da4e27e024cb6b195dbc8af80d821da4bfb398d4",
  "parents": [
    "b3bae4262d59f459677ba19009c5a0e9e6a46b39"
  ],
  "author": {
    "name": "Kevin Millikin",
    "email": "kmillikin@google.com",
    "time": "Thu May 31 12:43:22 2018 +0000"
  },
  "committer": {
    "name": "commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Thu May 31 12:43:22 2018 +0000"
  },
  "message": "Infer Object members for dynamic receivers\n\nFor method, getter, and setter invocations with names of methods on\nObject on expressions with static type `dynamic`, if the invocation\ncannot possibly be an invocation of noSuchMethod, infer the type of\nthe invocation using the type of the member of Object.\n\nThis implements the feature spec\nhttps://github.com/dart-lang/sdk/commit/472ec7780f1bb38f049d0fcc903a69bfb8ef9133\n\nFixes https://github.com/dart-lang/sdk/issues/32414\n\nChange-Id: I135156346fe1468561d56a01cf3c5f0efde30739\nReviewed-on: https://dart-review.googlesource.com/56942\nCommit-Queue: Kevin Millikin \u003ckmillikin@google.com\u003e\nReviewed-by: Dmitry Stefantsov \u003cdmitryas@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "361dd774ecdc8d0641dfceafe1d573457b8236a6",
      "old_mode": 33188,
      "old_path": "pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart",
      "new_id": "472c8daf0b83b21b3d0ffa6fede08d7f69bb4940",
      "new_mode": 33188,
      "new_path": "pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "825acca8f76f81bffa8aaa18e89d03732dc6bdca",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95ea9bcc40067831cfa188ea6d2b39651218b789",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart.direct.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95ea9bcc40067831cfa188ea6d2b39651218b789",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart.direct.transformed.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a440da0a4d28aae90a96587e9845f4557ae2cbaa",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart.outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ec5a9ff2d4dd360c8943f2a3cd51efca9f9263f9",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart.strong.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d4377bc5a164c4fcec424bba8bf90a4095e099a3",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414a.dart.strong.transformed.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4f1ab51a3cec0732024b5ab3b153cb788f525b09",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a8ece72cdec9d290b21ecf55fdf301a218a3c31",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart.direct.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a8ece72cdec9d290b21ecf55fdf301a218a3c31",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart.direct.transformed.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a440da0a4d28aae90a96587e9845f4557ae2cbaa",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart.outline.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b5242ffc155a426b3389289d83b377f9a2f6bbde",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart.strong.expect"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b5242ffc155a426b3389289d83b377f9a2f6bbde",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/bug32414b.dart.strong.transformed.expect"
    },
    {
      "type": "modify",
      "old_id": "76fc820c21e129b2ed29004c4ae2f3b4f50da8c2",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/inference/dynamic_methods.dart",
      "new_id": "116b700ccdb4bdb4a5e5c95f3b68e6044d42483c",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/inference/dynamic_methods.dart"
    },
    {
      "type": "modify",
      "old_id": "97bedda84fac8808cfb8f70dafa5d879126fc5cf",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/inference/dynamic_methods.dart.strong.expect",
      "new_id": "fcc146a1c119deeef66052b257caa4d2f8cc5a73",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/inference/dynamic_methods.dart.strong.expect"
    },
    {
      "type": "modify",
      "old_id": "97bedda84fac8808cfb8f70dafa5d879126fc5cf",
      "old_mode": 33188,
      "old_path": "pkg/front_end/testcases/inference/dynamic_methods.dart.strong.transformed.expect",
      "new_id": "fcc146a1c119deeef66052b257caa4d2f8cc5a73",
      "new_mode": 33188,
      "new_path": "pkg/front_end/testcases/inference/dynamic_methods.dart.strong.transformed.expect"
    },
    {
      "type": "rename",
      "old_id": "8f79be85d2af33abf42bf385269f0eb6e4c24bf6",
      "old_mode": 33188,
      "old_path": "pkg/vm/testcases/bytecode/boostrapping.dart",
      "new_id": "8f79be85d2af33abf42bf385269f0eb6e4c24bf6",
      "new_mode": 33188,
      "new_path": "pkg/vm/testcases/bytecode/bootstrapping.dart",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "f84988b4e23617a72ab0ed6ede1073144c767190",
      "old_mode": 33188,
      "old_path": "pkg/vm/testcases/bytecode/boostrapping.dart.expect",
      "new_id": "32d9de3bc1c8fbfe6a94e1f160c0c588f84f0143",
      "new_mode": 33188,
      "new_path": "pkg/vm/testcases/bytecode/bootstrapping.dart.expect",
      "score": 99
    },
    {
      "type": "modify",
      "old_id": "11456f2ff62b5eae17b55abaa3a6e73b2a554071",
      "old_mode": 33188,
      "old_path": "tests/language_2/language_2_dartdevc.status",
      "new_id": "290e42a05ae404b9b43c890fc88e0e4282074bcc",
      "new_mode": 33188,
      "new_path": "tests/language_2/language_2_dartdevc.status"
    }
  ]
}
