)]}'
{
  "commit": "cb8c0a0419ca4098d08b12e5d1f491fbf4776d3f",
  "tree": "fd4c82f7eb3a06fbfb0a4953eaa9b95c58594651",
  "parents": [
    "8613489faa20bd24fb076b1e7f3a6f7a166363ae"
  ],
  "author": {
    "name": "Nathan Sidwell",
    "email": "nathan@acm.org",
    "time": "Mon Mar 28 12:55:45 2022 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri May 13 04:40:36 2022 -0700"
  },
  "message": "[demangler] Avoid special-subst code duplication\n\nWe need to expand special substitutions in four different ways.  This\nrefactors to only have one conversion from enum to string, and derive\nthe other 3 needs off that.\n\nThe SpecialSubstitution node is derived from the\nExpandedSpecialSubstitution.  While this may seem unintuitive, it\nworks out quite well, as SpecialSubstitution can then use the former\u0027s\ngetBaseName and remove an unneeded \u0027basic_\u0027 prefix, for those\nsubstitutions that are instantiations (to known typedef).  Similarly\nall those instantiations use the same set of template arguments (with\n\u0027basic_string\u0027, getting an additional \u0027allocator\u0027 arg).\n\nExpansion tests were added in D123134, and remain unchanged.\n\nReviewed By: MaskRay, dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D125257\n\nGitOrigin-RevId: 562ce15924560d14f7062173cbdc6a9cd778e2eb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fa12a0a6d78217825c1029d91fa117c7991844db",
      "old_mode": 33188,
      "old_path": "src/demangle/ItaniumDemangle.h",
      "new_id": "beece93b21d41b6dbf137c81b55dc8c967132136",
      "new_mode": 33188,
      "new_path": "src/demangle/ItaniumDemangle.h"
    }
  ]
}
