)]}'
{
  "commit": "e36c642a80a375c1ed28a6c6f8564bed06b02ec8",
  "tree": "a618e9d3085f47c3dd7d352468a18636746245ee",
  "parents": [
    "1acf9aa8d4ebb55f4e1ead2796e73356e1d0a5fe"
  ],
  "author": {
    "name": "gwt.team.scottb",
    "email": "gwt.team.scottb@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Feb 14 17:49:53 2007 +0000"
  },
  "committer": {
    "name": "gwt.team.scottb",
    "email": "gwt.team.scottb@8db76d5a-ed1c-0410-87a9-c151d255dfc7",
    "time": "Wed Feb 14 17:49:53 2007 +0000"
  },
  "message": "This addresses issue #622.  The problem is that CastOptimizer leaves the\ntree in a particular state, namely:\n\"Cast.throwClassCastExceptionUnlessNull(value).value\".  The expectation is\nthat FixDanglignRefsVisitor would replace the \".value\" field reference\nwith \".nullField\".  The problem is, however, that only TightenTypesVisitor\ncan force FDRV to run; CastOptimizer cannot.\n\nMy fix is to eliminate CastOptimizer altogether and move its work (mostly)\ninto TypeTightener.  Impossible casts are replaced in the tree with a\n(\u003cnull\u003e) cast, which becomes a throwClassCastExceptionUnlessNull() in\nCastNormalizer.\n\nReview by: mmendez\n\n\n\ngit-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@403 8db76d5a-ed1c-0410-87a9-c151d255dfc7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "51988d1a0576b862ab4a7e85f5029c7fe2fde05a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java",
      "new_id": "5d887e767f36d725f110f13d9603ed2d901f0008",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java"
    },
    {
      "type": "modify",
      "old_id": "2adf61def5fa4a21488066ab91ba74ced540cd02",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JCastOperation.java",
      "new_id": "417a3e1409dca89cb42e50d2e0fa399877876d46",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/ast/JCastOperation.java"
    },
    {
      "type": "modify",
      "old_id": "73681517da09781644238d50024d886fdc5ae756",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/CastNormalizer.java",
      "new_id": "0a9f81d4ada87eb54df408b384f213bbb2d6e77c",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/CastNormalizer.java"
    },
    {
      "type": "delete",
      "old_id": "517e037f920cd649453a4a4f4e00d7d4b54b876a",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/CastOptimizer.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "9ecd657820b8d68f14c3cd4af528580b7e2514be",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java",
      "new_id": "4e130255efc4adc4ac1d27704822b4d322f164e1",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/TypeTightener.java"
    }
  ]
}
