)]}'
{
  "commit": "e0ad34e56590fa2e6ffdf617e044de7eadee2139",
  "tree": "8251a2b0c99f53fc559d4bb692d209a8260ca555",
  "parents": [
    "abb317ff9aba8a58449d91f6162597e54d02a57c"
  ],
  "author": {
    "name": "Matheus Izvekov",
    "email": "mizvekov@gmail.com",
    "time": "Wed Sep 18 18:22:14 2024 -0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Sep 18 18:22:14 2024 -0300"
  },
  "message": "[clang] Use canonical type for substitution which might be incomplete (#109065)\n\nWhen checking deduction consistency, a substitution can be incomplete\r\nsuch that only sugar parts refer to non-deduced template parameters.\r\n\r\nThis would not otherwise lead to an inconsistent deduction, so this\r\npatch makes it so we canonicalize the types before substitution in order\r\nto avoid that possibility, for now.\r\n\r\nWhen we are able to produce substitution failure diagnostics for partial\r\nordering, we might want to improve the TemplateInstantiator so that it\r\ndoes not fail in that case.\r\n\r\nThis fixes a regression on top of #100692, which was reported on the PR.\r\nThis was never released, so there are no release notes.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b50648d5752ce5d95b7b630142fb41cf4b3ef3ed",
      "old_mode": 33188,
      "old_path": "clang/lib/Sema/SemaTemplateDeduction.cpp",
      "new_id": "7d83b86a0073372ee079d1e52bf4d3616df995af",
      "new_mode": 33188,
      "new_path": "clang/lib/Sema/SemaTemplateDeduction.cpp"
    },
    {
      "type": "modify",
      "old_id": "820564ffa6f1a05c5e68d2521aabd8604ca2c40f",
      "old_mode": 33188,
      "old_path": "clang/test/SemaTemplate/GH18291.cpp",
      "new_id": "2e9754b656174006ebe9bf481c05d63c0eb624e7",
      "new_mode": 33188,
      "new_path": "clang/test/SemaTemplate/GH18291.cpp"
    }
  ]
}
