)]}'
{
  "commit": "f85a692582a6ea998100732b7744c115eda13dca",
  "tree": "812bb0477e8bccec3bf2ce3f50ad337931b63f1c",
  "parents": [
    "0d178f1fef75b101821cbc039cabf6f30cd3c40b"
  ],
  "author": {
    "name": "Roberto Lublinerman",
    "email": "rluble@google.com",
    "time": "Wed Jan 20 17:54:08 2016 -0800"
  },
  "committer": {
    "name": "Gerrit Code Review",
    "email": "noreply-gerritcodereview@google.com",
    "time": "Fri Jan 22 19:29:21 2016 +0000"
  },
  "message": "Fix nullness analysis for JSOs and propagate through casts.\n\nFor a long time our library and some use code has been relying\non the absence of NPE on null JSO dispatches. Subtle changes to\nthe optimization framework (like propagating nullness information\nthrough casts) break due to code following this assumption.\n\nThis patches makes JSO types more conservative, by not letting\nthe compiler model them as non null, and improves optimizations\nby propagating nullness through casts.\n\nChange-Id: I202d889ef5b686b272aa95a5dd9ddf1e8644f938\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4fd6dd1b6c2a03537f9a761bb338e29241590e73",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JCastOperation.java",
      "new_id": "8c3de56266745a34266f1ff8c7372f0cd9cad111",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JCastOperation.java"
    },
    {
      "type": "modify",
      "old_id": "c13dae2bb59c92a5dfe988ecbc669e78da8c4aed",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java",
      "new_id": "8cd950587943de0758e10ccd8dbb5d6a1f05d690",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JPrimitiveType.java"
    },
    {
      "type": "modify",
      "old_id": "fda68a71a6863349d3cca68414ad7a40438176f5",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java",
      "new_id": "4e37f8b01243bbfcf9c2499b1de61ed72c7db890",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JProgram.java"
    },
    {
      "type": "modify",
      "old_id": "8398ab320b3c97347435cc573a5ec09d29cb9230",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java",
      "new_id": "886c80d0a8a4a44efe2905d9d74f4d8eda3ee592",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JReferenceType.java"
    },
    {
      "type": "modify",
      "old_id": "a645b8bd4dd6f1f2ec1c9d5abdd08b452033f22b",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JType.java",
      "new_id": "7a62af4f2a8a3ec820fa8cff7ae96df97ad754c7",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JType.java"
    },
    {
      "type": "modify",
      "old_id": "1891953e3e51d84d57e89651640e043fa2a1d2ad",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java",
      "new_id": "500b1989f7f3f8ff081886cf5823dd356b58502d",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/optimized/CastOptimizationTest.java"
    },
    {
      "type": "modify",
      "old_id": "9465ae3988c7b3762119e5d886a62376ffe0b897",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java",
      "new_id": "68ea4dc841be96c3ae380685c84a7e005e6ee966",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/optimized/OptimizationTestBase.java"
    },
    {
      "type": "modify",
      "old_id": "d6a5f4a29ccfcb74804dc6d3538969cd056ab1fa",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/dev/jjs/test/JsoTest.java",
      "new_id": "e9f3f5f00cb4b7a05374f2e40726542aaa47d691",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/dev/jjs/test/JsoTest.java"
    }
  ]
}
