)]}'
{
  "commit": "991e60efdc8f6475f2d2e9d614a30dd63d681888",
  "tree": "0f52add4e973e6511afc38978bfa0026a8e1e632",
  "parents": [
    "22b2c650f21cfb218c71479fa24ce9638dcacdfa"
  ],
  "author": {
    "name": "Rebecca Chen",
    "email": "rechen@fb.com",
    "time": "Fri Aug 21 16:53:10 2026 -0700"
  },
  "committer": {
    "name": "Rebecca Chen",
    "email": "rechen@fb.com",
    "time": "Fri Aug 21 19:15:56 2026 -0700"
  },
  "message": "Ignore `TypeOfProtocolNeedsConcreteClass` error on bound cls args\n\nSummary:\nFixes https://github.com/facebook/pyrefly/issues/3375.\n\nWe usually allow only concrete classes to be assigned to protocols. This should not prevent calling a classmethod on a protocol.\n\nTest Plan:\n`./test.py`\n\nReviewers:\n\nSubscribers:\n\nTasks:\n\nTags:\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "35bfd5b910b61040e5f651655030f432fc1ed05f",
      "old_mode": 33188,
      "old_path": "pyrefly/lib/alt/callable.rs",
      "new_id": "0fb1687f4fd0bcde282c4fca5c0b935a4adda8ca",
      "new_mode": 33188,
      "new_path": "pyrefly/lib/alt/callable.rs"
    },
    {
      "type": "modify",
      "old_id": "6c057d365b6db1356cb3940d1742ca99468906b6",
      "old_mode": 33188,
      "old_path": "pyrefly/lib/solver/subset.rs",
      "new_id": "98f1f2126205f4a2b1f72c4e1f99e1074f5f7af3",
      "new_mode": 33188,
      "new_path": "pyrefly/lib/solver/subset.rs"
    },
    {
      "type": "modify",
      "old_id": "fc18672ddd496857ca5221f4cad44819e01f1b0b",
      "old_mode": 33188,
      "old_path": "pyrefly/lib/test/protocol.rs",
      "new_id": "e33b4a6a7341a547c3de9ae3a1bc5fb486bb3e2a",
      "new_mode": 33188,
      "new_path": "pyrefly/lib/test/protocol.rs"
    }
  ]
}
