)]}'
{
  "commit": "13b5402c1821692611215e85d1b95edd11cf7a25",
  "tree": "03171a0a02e84f42b5533d974c3c76fd6ce46c5b",
  "parents": [
    "2fd5d74f8b47941ec36533c40a1f5939d99ee6cb"
  ],
  "author": {
    "name": "Christoffer Quist Adamsen",
    "email": "christofferqa@google.com",
    "time": "Tue Nov 03 13:36:46 2020 +0100"
  },
  "committer": {
    "name": "Christoffer Quist Adamsen",
    "email": "christofferqa@google.com",
    "time": "Tue Nov 03 12:41:41 2020 +0000"
  },
  "message": "Optimize casts to uninstantiated types\n\nFor check-cast instructions where the cast type is uninstantiated, this replaces all usages of the out-value by null, and then replaces the check-cast instruction by throwClassCastExceptionIfNotNull(object) to allow dead code elimination of the cast type.\n\nChange-Id: If02e0f3d33430839abb4234aa24aa5605cc5fb73",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "408e3a0f81e948a54be390cd696cb8a4fa4cc1e7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/R8.java",
      "new_id": "a38b29e96d114a69ee3a014e39e6db0636a87b7a",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/R8.java"
    },
    {
      "type": "modify",
      "old_id": "bd6c452e00d2a527e6b20afcdae04fe17694f0db",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/AssemblyWriter.java",
      "new_id": "7b1fe7ca41003e67ba3f8476eb3a62e2a5dafb6b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/AssemblyWriter.java"
    },
    {
      "type": "modify",
      "old_id": "8c9c20e64f33e0ec826f216a4721dd64df059741",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/MethodAccessFlags.java",
      "new_id": "c29ebde854e0d23be6a554ffda4619b92ff5ee00",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/MethodAccessFlags.java"
    },
    {
      "type": "modify",
      "old_id": "82a133c5daca78c770cf31b44e3cdbfdba862b60",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/ProgramDefinition.java",
      "new_id": "e96d26c613fbdd3c02acc9ec0bf81e6a9a8beece",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/ProgramDefinition.java"
    },
    {
      "type": "modify",
      "old_id": "667c1ff3171a5a4e821cf2f56e080fa580b2bcd2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedExtensionRegistryShrinker.java",
      "new_id": "04f9a852d420212e74873de9e34782052bede3f2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedExtensionRegistryShrinker.java"
    },
    {
      "type": "modify",
      "old_id": "6da25506189c12062960443b6df88ac2964500c4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedMessageLiteShrinker.java",
      "new_id": "45f5083b326b08f30e0b9e82d8f8f7b21e255c5e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/analysis/proto/GeneratedMessageLiteShrinker.java"
    },
    {
      "type": "modify",
      "old_id": "62c94b8aede58fdc4b96683b8e830fdb97ad6f04",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/Instruction.java",
      "new_id": "9711ff2cbb80a9c8b01a448363acd16276a65ec3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/Instruction.java"
    },
    {
      "type": "modify",
      "old_id": "bf3a5992ee6d5f934eb45054fcf7b319a4b5187c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java",
      "new_id": "47478dfaef8890f256b96a2a8ceb974333654b1f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java"
    },
    {
      "type": "modify",
      "old_id": "960dea01fa5272f282a15738dabb6875299b98c2",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java",
      "new_id": "324ad9305e5cd64e6c96f5b4e35e2ffa555ef9c4",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java"
    },
    {
      "type": "modify",
      "old_id": "8e7cfea2de883c16e631d6380f05eefbb728d0d1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/MethodProcessingId.java",
      "new_id": "143d6ff9db61c8ab2c3e5e47f3dcf71a5e79e992",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/MethodProcessingId.java"
    },
    {
      "type": "modify",
      "old_id": "b7ee7e1c471c140fbbfbb91286c26339c6ee6190",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/MethodProcessor.java",
      "new_id": "86ff63f80139ad591824bedfa2bfb18d669e7f8e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/MethodProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "00bad3ba2fa4d5ab1a48dc84ade07e1037da9986",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/OneTimeMethodProcessor.java",
      "new_id": "bb3f07c07e79789e225c4af4735cb20a2efd0f19",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/OneTimeMethodProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "5b1485ddb4555af77f304c7a989bd7f117728db4",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java",
      "new_id": "48aaf3a572ca69261436986db6f09f91acb6e559",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "9dfe8e39812444a107a9cb804b67d252d96d7e89",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/conversion/PrimaryMethodProcessor.java",
      "new_id": "dd4c0a0502ba2ec1888edf613f8fb8112f003b59",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/conversion/PrimaryMethodProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "61b13cbc2bca38a2cd470ca6315fa5527e16dc63",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java",
      "new_id": "d765d76e777046aba1133cf6c6ec1cbade0e3dea",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "247e2e3ebf5b81c96ac3a19c33f9820e0a9da6f9",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/UtilityMethodsForCodeOptimizations.java"
    },
    {
      "type": "modify",
      "old_id": "6f945bdd9a4c5084067b20ac6aac5e454a8ff386",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java",
      "new_id": "dab89c6974f14931f61c21f3ddf901965c8a8a0c",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/classinliner/ClassInliner.java"
    },
    {
      "type": "modify",
      "old_id": "1402421d7273c37408642848be5c6936f38c6de9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java",
      "new_id": "f776d44de394abc99b7423c91ff35f12400fc921",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "948400799a4a7d460e5f6d9fe73aae090cb5b83f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizations.java"
    },
    {
      "type": "modify",
      "old_id": "3625fbb1b8caf8869a7a4297ffd715db1ec3c64e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java",
      "new_id": "303df060c7d4777551dc942cc9b4713ae22a3609",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java"
    },
    {
      "type": "modify",
      "old_id": "c6726e13c89bd10e86bcde877627aef13e9af885",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java",
      "new_id": "dcdaafc9378e4d4267b7f019e3a3d5ae5eff7353",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/synthesis/SyntheticItems.java"
    },
    {
      "type": "modify",
      "old_id": "a42fd3a22a90350f692d019e9b91235a53e725c6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/utils/ComparatorUtils.java",
      "new_id": "59cac4251437b87498d152af2083131437e79eb2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/utils/ComparatorUtils.java"
    },
    {
      "type": "modify",
      "old_id": "6f6d1a5380a0ca8ae742740d49477bff5ff8b27c",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java",
      "new_id": "d902126dbfb22eedb09d20e234b150d9c189404d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java"
    },
    {
      "type": "modify",
      "old_id": "357fa0e5dfdbc88c64e7e0e79c4b1e248ab4fb5f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/ir/analysis/fieldaccess/FieldBitAccessInfoTest.java",
      "new_id": "a2fe521b08fa2519b8e8b6b47ed3c828a70a00c5",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/ir/analysis/fieldaccess/FieldBitAccessInfoTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa385fd8a7935ed3862f14796fc340fc0fdd7f5b",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/ir/optimize/checkcast/CastToUninstantiatedClassTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d8d7c859c18d645446a4ae345500f6ffabb6dceb",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizationsTemplates.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c35135e935ef957cf991b6dab3a28f766c27f060",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/ir/optimize/templates/GenerateCfUtilityMethodsForCodeOptimizations.java"
    },
    {
      "type": "modify",
      "old_id": "0a1914fa76b81c76e0dfd2932a538c621bb779c8",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/clinit/ClassNotInitializedByCheckCastTest.java",
      "new_id": "5a3efa6185b423ee844de09bcf79d27a0d26445c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/clinit/ClassNotInitializedByCheckCastTest.java"
    },
    {
      "type": "modify",
      "old_id": "76e14036c79bd5d5a996de2f5a86c31d01aba9f3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/definitelynull/TestClass.java",
      "new_id": "edebe31d5511149aeb5df4d9e4fdfd5efffd83f3",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/definitelynull/TestClass.java"
    },
    {
      "type": "modify",
      "old_id": "91cd90c74d0c7227f308dacbc54041a6235464f9",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java",
      "new_id": "04e2c9f188222e14ee7280ef960369457cb9add4",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/shaking/forceproguardcompatibility/ForceProguardCompatibilityTest.java"
    },
    {
      "type": "modify",
      "old_id": "29bebe1739c86370c0b9d9b642e7c70a5ce7a4cb",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java",
      "new_id": "c2a8cc86786681327489c18c4840b0e12225d145",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/utils/codeinspector/Matchers.java"
    }
  ]
}
