)]}'
{
  "commit": "a3fc79fc15b1a04b4051c6798b48c935fceb60da",
  "tree": "5bc21477c171a3dc006537c7b667d09b9d9af703",
  "parents": [
    "5d65009d83fc333d8b8c5fc558f1393b376d542e"
  ],
  "author": {
    "name": "Roberto Lublinerman",
    "email": "rluble@google.com",
    "time": "Thu Nov 12 14:12:45 2015 -0800"
  },
  "committer": {
    "name": "Gerrit Code Review",
    "email": "noreply-gerritcodereview@google.com",
    "time": "Thu Nov 12 23:53:33 2015 +0000"
  },
  "message": "Make sure synthetic bridge methods are properly rewritten.\n\nSynthetic bridges and the methods they dispatch to have different\nsignatures and hence different names in regular Java classes.\n\nIn the context of js interop we allow to name both the bridge and\nthe regular method with the same name because it is natural to do\nso, e.g.:\n\n  @JsType\n  abstract class SomeSuper {\n    public abstract SomeSuper m();\n  }\n\n  @JsType\n  class SubClass extends SomeSuper {\n    public SubClass m() { return this; }\n  }\n\nIn this case SomeSuper.m() has signature m()LSomeSuper; and\nSubClass.m() has signature m()LSubClass;. Hence an bridge method\nm()LSomeSuper; is created that calls this.m()LSubClass; in SubClass.\n\nIn this context both method will be named \"m\" in JavaScript and it\nis OK not to emit the bridge in this case; for simplicity the\ngenerated code will emit the bridge and immediately rewrite it with\nthe actual concrete method.\n\nChange-Id: I0248b171807d274c23f329b531ccaa71046dbfb7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9cbda78a09b5283ab99b5209fd0a3171c9ca93e5",
      "old_mode": 33188,
      "old_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java",
      "new_id": "bf2d791b72bc8799f04e323d0ec253a3d9ce5f19",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e0ff7dc2a5f558a1fa4e87801e88c8178e5f56ff",
      "new_mode": 33188,
      "new_path": "dev/core/src/com/google/gwt/dev/jjs/impl/JjsPredicates.java"
    },
    {
      "type": "modify",
      "old_id": "ad9a5f2671c40d49b2f427bd5adc208e284a0811",
      "old_mode": 33188,
      "old_path": "user/test/com/google/gwt/core/client/interop/JsTypeTest.java",
      "new_id": "242c9a3069ded44661096a5c0f5d188e2f9bd015",
      "new_mode": 33188,
      "new_path": "user/test/com/google/gwt/core/client/interop/JsTypeTest.java"
    }
  ]
}
