)]}'
{
  "commit": "15c3793cdf947be16a4686d26998143fd6487641",
  "tree": "3868d4c5d5583edd9f775da11389b686030fe806",
  "parents": [
    "6882a30acec695beab568d5393af9bd15970d0d6"
  ],
  "author": {
    "name": "Cyndy Ishida",
    "email": "cyndy_ishida@apple.com",
    "time": "Fri Jul 11 09:33:55 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 11 09:33:55 2025 -0700"
  },
  "message": "[clang][scan-deps] Report a scanned TU\u0027s visible modules (#147969)\n\nClients of the dependency scanning service may need to add dependencies\nbased on the visibility of importing modules, for example, when\ndetermining whether a Swift overlay dependency should be brought in\nbased on whether there\u0027s a corresponding **visible** clang module for\nit.\nThis patch introduces a new field `VisibleModules` that contains all the\nvisible top-level modules in a given TU.\nBecause visibility is determined by which headers or (sub)modules were\nimported, and not top-level module dependencies, the scanner now\nperforms a separate DFS starting from what was directly imported for\nthis computation.\n\nIn my local performance testing, there was no observable performance\nimpact.\n\nresolves: rdar://151416358\n\n---------\n\nCo-authored-by: Jan Svoboda \u003cjan@svoboda.ai\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee24e5d1543d374ab31083f02d9fbd56109146c8",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h",
      "new_id": "c3601a4e73e1fb775575ea77db6c49035e0d7042",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Tooling/DependencyScanning/DependencyScanningTool.h"
    },
    {
      "type": "modify",
      "old_id": "3e232c79397cecfe6b45cffce7cfcb3cd1a9935b",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h",
      "new_id": "6060e4b43312e232b8932244ec005ccf7c1dc25a",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h"
    },
    {
      "type": "modify",
      "old_id": "e96c49883d3c6663e62bc9b44d35934bd69b6baa",
      "old_mode": 33188,
      "old_path": "clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h",
      "new_id": "4136cb73f7043b2041896b2d4106680129a12458",
      "new_mode": 33188,
      "new_path": "clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h"
    },
    {
      "type": "modify",
      "old_id": "515211d47b3488716729b1dc7707102198a4115a",
      "old_mode": 33188,
      "old_path": "clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp",
      "new_id": "27734ffd0e20b2da38f24fedaff1229dddf46bed",
      "new_mode": 33188,
      "new_path": "clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa86d714ff69a6922697c5a817473405f71c43af",
      "old_mode": 33188,
      "old_path": "clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp",
      "new_id": "37f8b945d785eb4a7a3d21aa21469095978a7384",
      "new_mode": 33188,
      "new_path": "clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "77716a4956f00f13d99feba1c808d5cc5554b230",
      "new_mode": 33188,
      "new_path": "clang/test/ClangScanDeps/visible-modules.c"
    },
    {
      "type": "modify",
      "old_id": "8b590bd57e1a331032da74b3986c6a3a22489851",
      "old_mode": 33188,
      "old_path": "clang/tools/clang-scan-deps/ClangScanDeps.cpp",
      "new_id": "f10b73278381b6bca3fbe5893e8edc6d4e348932",
      "new_mode": 33188,
      "new_path": "clang/tools/clang-scan-deps/ClangScanDeps.cpp"
    },
    {
      "type": "modify",
      "old_id": "9cccbb3aaf0c8b52f6c5bb7c43bb7610ff400a8a",
      "old_mode": 33188,
      "old_path": "clang/tools/clang-scan-deps/Opts.td",
      "new_id": "03011f9ae1f7596b06be258fa5e18e106c5f56f7",
      "new_mode": 33188,
      "new_path": "clang/tools/clang-scan-deps/Opts.td"
    }
  ]
}
