)]}'
{
  "commit": "1b804e20b9d258c8f0b454d43013cf2300f0df26",
  "tree": "ee23820f67a43fb20c7f23193d902fed5fb567a9",
  "parents": [
    "06c1aa3ca74cf73df07d1ef3fff9b476e5aedaab"
  ],
  "author": {
    "name": "Zhijie Wang",
    "email": "yesterda9@gmail.com",
    "time": "Tue Apr 14 02:31:35 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Apr 14 15:01:35 2026 +0530"
  },
  "message": "[LifetimeSafety] Track origins through std::function (#191123)\n\n1. Recognizes `std::function` and `std::move_only_function` as types\nthat can carry origins from a wrapped lambda\u0027s captures, propagating\norigins through both construction and assignment.\n2. Adds a kill-only mechanism (i.e., a new `KillOriginFact`) to clear\nold loans when the RHS has no origins.\n\nFixes #186009",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6be8f6e455bc2ec2fcae701ef16774401e435d23",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h",
      "new_id": "b70fecd5ab1d18ae7a63a3ec37c73f3834153927",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h"
    },
    {
      "type": "modify",
      "old_id": "aa9ae4b2a5e6aef5f34a49ef3c9dfad833c3e041",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h",
      "new_id": "098c15f4a7fb426f6ddfc547c16bd7acd1cf1ddb",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h"
    },
    {
      "type": "modify",
      "old_id": "0f64ac8a36ef7b3538142fc0b2151096788b1e60",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/Dataflow.h",
      "new_id": "fc3049c8bec84a705aaee525b4eecefc016f857c",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/Dataflow.h"
    },
    {
      "type": "modify",
      "old_id": "1bc0521a723592d47bc37b09f543b8d01508e0ee",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/Facts.cpp",
      "new_id": "3d7fbcdacc83064e5008a023269c0dcedee52f78",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/Facts.cpp"
    },
    {
      "type": "modify",
      "old_id": "cae56ddd3d7c3150902850a04eaec6e34384722f",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp",
      "new_id": "fcc6035c3c1c85ba144d444a083c290551efcf8e",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp"
    },
    {
      "type": "modify",
      "old_id": "4852f444a51b3551a87d18b54c05fca55b1fbbb4",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp",
      "new_id": "27d95821dd0b43fd41e973431b4569b74d817594",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp"
    },
    {
      "type": "modify",
      "old_id": "bc7494360624e219547e28f32a20d314f79496e3",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp",
      "new_id": "cfbcacf04b1b00ff7fb6f92bf7c62056a44196b0",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp"
    },
    {
      "type": "modify",
      "old_id": "e437fb7d41268877e49028938ae5ca3334257c38",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp",
      "new_id": "adbc0458516e16ca441983f80464aa8faa96ed12",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp"
    },
    {
      "type": "modify",
      "old_id": "fdd2671dee2e047a42b6c0b18d594063525b4e79",
      "old_mode": 33188,
      "old_path": "clang/lib/Analysis/LifetimeSafety/Origins.cpp",
      "new_id": "033cbdd75352cf8df393b371bcac49a73b3e0308",
      "new_mode": 33188,
      "new_path": "clang/lib/Analysis/LifetimeSafety/Origins.cpp"
    },
    {
      "type": "modify",
      "old_id": "d1e847d20cc50cf89aed0bc79fdd9269f68cf9e3",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/Inputs/lifetime-analysis.h",
      "new_id": "2b904f88bc4752786865a9cf64ea503a27b7e10e",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/Inputs/lifetime-analysis.h"
    },
    {
      "type": "modify",
      "old_id": "79b0183ed91ec685a2890f127dd7be303c1d2e37",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety-dangling-field.cpp",
      "new_id": "2afcd4a3dd97b92f9dc26489bd38efbce6dfa95a",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety-dangling-field.cpp"
    },
    {
      "type": "modify",
      "old_id": "5a77ac97d16b1653aeba0af8f561359332c7a04b",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety-invalidations.cpp",
      "new_id": "973e095fb68b464a35cc864a727b2a64b731bdc4",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety-invalidations.cpp"
    },
    {
      "type": "modify",
      "old_id": "f233ec546faa51bedbc7843f80c781ea91437818",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety-noescape.cpp",
      "new_id": "4bb57e6b9df95e019f017167304c7647a7a679b1",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety-noescape.cpp"
    },
    {
      "type": "modify",
      "old_id": "b3b13038dc34452744d6d220ba288aecaa15a61c",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety-suggestions.cpp",
      "new_id": "d2cf1c175eb570e3ccc854312a8946ba2e1ebe43",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety-suggestions.cpp"
    },
    {
      "type": "modify",
      "old_id": "f87b5cbdd0230f3e91690c26077ade76826f4558",
      "old_mode": 33188,
      "old_path": "clang/test/Sema/warn-lifetime-safety.cpp",
      "new_id": "c083c30f5855dad7fbb6625430bc55c5efaeca72",
      "new_mode": 33188,
      "new_path": "clang/test/Sema/warn-lifetime-safety.cpp"
    }
  ]
}
