)]}'
{
  "commit": "0208e01e2abb3624b8b1ef7092575b9044e39fcd",
  "tree": "2e3140020a3e097627ec038405e827ca4953809f",
  "parents": [
    "8cbbe2bde08ecf901ad805b79c847fbd5176d243"
  ],
  "author": {
    "name": "Christoffer Quist Adamsen",
    "email": "christofferqa@google.com",
    "time": "Wed Oct 18 10:10:32 2023 +0200"
  },
  "committer": {
    "name": "Christoffer Adamsen",
    "email": "christofferqa@google.com",
    "time": "Wed Oct 18 12:21:52 2023 +0000"
  },
  "message": "Refactor single dispatch target to allow avoiding duplicate resolution\n\nThis refactors the implementation of `InvokeMethod#lookupSingleTarget` to `SingleResolutionResult#lookupDispatchTarget`.\n\nThis ensures that we have always performed successful resolution prior to looking up the dispatch target, and that the (single) resolution result is always available for the dispatch target lookup, meaning we can avoid duplicating resolution as done currently.\n\nThis CL is meant to be a pure refactoring, thus the change to avoid duplicating the resolution is postponed to a follow up.\n\nChange-Id: I326f336865c1cf96d2db898a967fc83154b245dd",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b02bb1950d06fd0c45b6e1b5691ca9e465029516",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/AppInfo.java",
      "new_id": "07512e55c2854761a6ffd7cf04f74d8ea0c81931",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/AppInfo.java"
    },
    {
      "type": "modify",
      "old_id": "fcfb3cfdaf8a22e0ab2dd9970513b727c26c3838",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java",
      "new_id": "d12155932347d1888a827b6e5247d8ebf9052e68",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java"
    },
    {
      "type": "modify",
      "old_id": "263335f12edb33f818c68e68b90839dc7d1886ee",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/DexClass.java",
      "new_id": "e8c908a4c35ad40d40a18935f9ada494ef94e40d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/DexClass.java"
    },
    {
      "type": "modify",
      "old_id": "4af04cb273dbc5fffe54a2d776d5153fc3c736b6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java",
      "new_id": "f46fc2b9e9dcb4e0b5b68d1d020273cdbfd6c233",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/DexClassAndMethod.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0190e2c1c898085789fba266c206806195d94690",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/DispatchTargetLookupResult.java"
    },
    {
      "type": "modify",
      "old_id": "428c57d3b3df4370fa1c26391cd21b2c58c04bc8",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/graph/MethodResolutionResult.java",
      "new_id": "e8290ab853ed8e7567aeb56026c255eeded6282f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/MethodResolutionResult.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5cd3952702dda0d1085b88b34b7066ebb57b2dfc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/SingleDispatchTargetLookupResult.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0d51cff089784701f22c5c2077c6c619727508af",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/graph/UnknownDispatchTargetLookupResult.java"
    },
    {
      "type": "modify",
      "old_id": "5bf3bd6e53f45604b30abc74667764fd2f807f7e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java",
      "new_id": "22cc39ff1c4563e0e185ef3aabfae2021a26e210",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java"
    },
    {
      "type": "modify",
      "old_id": "293629230955619d4030711e707d9d736941d9a9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java",
      "new_id": "13f5ade3c2655db5a498ad6546c3236c72e6f3ef",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java"
    },
    {
      "type": "modify",
      "old_id": "97994551adea158c2f6d751c06ba5ffb4d3c51c7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java",
      "new_id": "434272d3a431dec06acc8488f88dfadf48269e6e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java"
    },
    {
      "type": "modify",
      "old_id": "2521043c3be8e84dd10444554ca26a51ba67dc78",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeMethodWithReceiver.java",
      "new_id": "edc96f653176ff5c95202fe732e957ee49f02351",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeMethodWithReceiver.java"
    },
    {
      "type": "modify",
      "old_id": "5e80e07ef3d09b77aa56e7c05144832a77a73f07",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java",
      "new_id": "0061bf3d9da6f1f02e4f3a5ec997b30fb38b5430",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java"
    },
    {
      "type": "modify",
      "old_id": "e7043b09108073049ee69e8e539effe0163e6db7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java",
      "new_id": "f1d4aeab283721ecf933a2236d0d111e61d76157",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java"
    },
    {
      "type": "modify",
      "old_id": "b63fc988ddad4fa331f9e5d5ac60d7a2c201e275",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java",
      "new_id": "6db911d41d4e780662184c6830d9852d069ac054",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java"
    },
    {
      "type": "modify",
      "old_id": "cf04e984187c135c62b6ec5a483bb4c06d35639d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java",
      "new_id": "cde845d5ae64ddfe453801d1cfafcbd459c749f2",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java"
    },
    {
      "type": "modify",
      "old_id": "9f4c5d07bb70ffa85a08f892e3504d7ff222dd41",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/desugar/LambdaDescriptor.java",
      "new_id": "7e9cc291650a8d8efb5f35cc9ba0c687865f0280",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/desugar/LambdaDescriptor.java"
    },
    {
      "type": "modify",
      "old_id": "f39986578862cac02d84b9d360de7b3199b641fc",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java",
      "new_id": "a0715f75d76c9b137dfd709e03fe5ee22d7b668d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java"
    },
    {
      "type": "modify",
      "old_id": "054a256c7b14a38b43aad956e4343716551aef96",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java",
      "new_id": "46dd4a01e134b5249e8e2e503cd84826fb3b1a5d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java"
    },
    {
      "type": "modify",
      "old_id": "c0a989b72ebf3e16b736e8b33bc104ce202c29f1",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java",
      "new_id": "52b3b8a4e1f1d8d1a927c5a328d411e99455c3d5",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java"
    },
    {
      "type": "modify",
      "old_id": "927f14bb738965f89468dcefc31d1936c2661e3e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java",
      "new_id": "3bdf1c00a03ad4e11d396f86a641c2b105c77f9d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java"
    },
    {
      "type": "modify",
      "old_id": "392ae357bcbb53a0dae1de14f2ed71ea89fa8425",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/shaking/SingleTargetLookupCache.java",
      "new_id": "0c576e0ac8b9329ed22e87f26c22643a3e107c43",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/shaking/SingleTargetLookupCache.java"
    },
    {
      "type": "modify",
      "old_id": "216f19b122d3ff629b6660d021b31d02aafe084a",
      "old_mode": 33188,
      "old_path": "src/main/java/com/android/tools/r8/utils/ObjectUtils.java",
      "new_id": "9dfd1e05457e47c0227843890c4d1268a387b52b",
      "new_mode": 33188,
      "new_path": "src/main/java/com/android/tools/r8/utils/ObjectUtils.java"
    },
    {
      "type": "modify",
      "old_id": "e010bfe952d29e075c5edc21eaa93f2567d9f156",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java",
      "new_id": "d32849b2d18e983b0d1ff6e13c338335374b2edd",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java"
    },
    {
      "type": "modify",
      "old_id": "244e9eabe899774aaf3913a28f278062c2268b8f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java",
      "new_id": "e15e664a06faa61f57c326f984e9de7041de8f71",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java"
    },
    {
      "type": "modify",
      "old_id": "b456774fe7b7ddf71db13c4ea7834d22975ed9d3",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java",
      "new_id": "d166b978049a679e002e09450318a4e5d5f0698c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java"
    },
    {
      "type": "modify",
      "old_id": "788e55b5fd40bfb9dbe5b674ef877206fbba92a2",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java",
      "new_id": "7b9b80c8fcaf236b93fea9a111055f1238eb68d7",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java"
    },
    {
      "type": "modify",
      "old_id": "ca2dee895557b0ce5ddbebcab6530110056fd5a7",
      "old_mode": 33188,
      "old_path": "src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java",
      "new_id": "ec3815dc0f3f272eff0e3db17ffd4b3f75c88a94",
      "new_mode": 33188,
      "new_path": "src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java"
    }
  ]
}
