)]}'
{
  "commit": "03ffba55522e3e58e9ed7b4ef1e73ded53eef0fd",
  "tree": "514d97bc39230745b3b23c58bb4cc822d460f8cf",
  "parents": [
    "f257588ba1da87d5591fbc2356bd7392ef9299ea"
  ],
  "author": {
    "name": "Ryan Prichard",
    "email": "rprichard@google.com",
    "time": "Fri Apr 12 02:43:20 2024 -0700"
  },
  "committer": {
    "name": "Ryan Prichard",
    "email": "rprichard@google.com",
    "time": "Mon Apr 15 23:46:28 2024 +0000"
  },
  "message": "CompilationResult: remove private default ctor\n\nThe private default constructor was added to force users to call one of\nCompilationResult\u0027s static member functions to construct a\nCompilationResult. However, it was possible to bypass this restriction\nusing aggregate initialization:\n\n    CompilationResult do_compile(...) {\n      ...\n      CompilationResult result;    // ill-formed, calls private ctor\n      CompilationResult result {}; // OK, uses aggregate initialization\n      CompilationResult result { .elapsed_time_ms \u003d 42 }; // also OK\n      ...\n    }\n\nIn C++20, the user-declared private default constructor now prevents\naggregate initialization, which closes the loophole. See\nhttps://wg21.link/p1008r1.\n\nRemove the private constructor so that CompilationResult\u0027s members can\nstill use the elegant aggregate syntax themselves.\n\nBug: 311052584\nTest: remove cpp_std override and build Android\nTest: atest art_standalone_odrefresh_tests\nChange-Id: I3ecb8bec5fb69d453d82fff7235caf417c9f1a8c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2398b7dbe0d1caa221fddc504b2bf153b0101b0",
      "old_mode": 33188,
      "old_path": "odrefresh/odrefresh.h",
      "new_id": "3031b1b554a2c67bdcf06ae55922f0458fbfb84b",
      "new_mode": 33188,
      "new_path": "odrefresh/odrefresh.h"
    }
  ]
}
