)]}'
{
  "commit": "ef5f1a77ab2b56993c057d7755b8374b25310ce2",
  "tree": "49260bf27620c1fbdfcc759e6b1893ddc3009d8a",
  "parents": [
    "21746ce317153041fc14b0a49eaeab1a8cbc4c81"
  ],
  "author": {
    "name": "Marco Pennekamp",
    "email": "marco.pennekamp@jetbrains.com",
    "time": "Tue Feb 11 20:40:30 2025 +0100"
  },
  "committer": {
    "name": "Space Team",
    "email": "noreply@jetbrains.team",
    "time": "Wed Feb 19 20:19:21 2025 +0000"
  },
  "message": "[AA] Introduce platform components to avoid exposing `JavaModuleResolver`\n\n- `JavaModuleResolver` is a Kotlin compiler concept, so it shouldn\u0027t be\n  exposed as a necessary service for Analysis API platforms to register.\n- Standalone still wants to use the compiler\u0027s `CliJavaModuleResolver`,\n  but also needs to register the new platform components. The solution\n  is to let Standalone implement the new components with\n  `CliJavaModuleResolver`. This requires some awkward bridging, but at\n  least limits the issue to Standalone. The chosen approach is still\n  preferable over exposing Kotlin compiler classes to all platform\n  implementations. It also allows Standalone to benefit from the common\n  Analysis API implementation, for example its caching for Java module\n  annotations.\n\n^KT-75115 fixed\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "60da19e3218b835345a07dc57dbb95fe3de38080",
      "old_mode": 33188,
      "old_path": "analysis/analysis-api-impl-base/build.gradle.kts",
      "new_id": "7816bb2bad2a6162052cbd3107a24f4ea1ee910c",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-impl-base/build.gradle.kts"
    },
    {
      "type": "modify",
      "old_id": "accce3627e4bebf7c16b4f9d79c7cb9240cc9ceb",
      "old_mode": 33188,
      "old_path": "analysis/analysis-api-impl-base/resources/META-INF/analysis-api/analysis-api-impl-base.xml",
      "new_id": "819d56825a114a5a556f5ab9222129aff6b3c380",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-impl-base/resources/META-INF/analysis-api/analysis-api-impl-base.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "52cdada76a08d9dc65820f2c103ec8997c916fee",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-impl-base/src/org/jetbrains/kotlin/analysis/api/impl/base/java/KaBaseJavaModuleResolver.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f93315ec8ca01083eb9b1f1a125578b1948f3575",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-platform-interface/src/org/jetbrains/kotlin/analysis/api/platform/java/KotlinJavaModuleAccessibilityChecker.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eca55ac10d1feb9083eab6115d16dacc5a12498f",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-platform-interface/src/org/jetbrains/kotlin/analysis/api/platform/java/KotlinJavaModuleAnnotationsProvider.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0466259fcb79de8234c02b9a9f1cffa62c7e5b22",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/java/KotlinStandaloneJavaModuleAccessibilityChecker.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1a02cf82721ccb39e8de04b339c20b4cfa9f247",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/java/KotlinStandaloneJavaModuleAnnotationsProvider.kt"
    },
    {
      "type": "modify",
      "old_id": "8f7af7712525d2f60551635a0d5f1c4c1fb18773",
      "old_mode": 33188,
      "old_path": "analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt",
      "new_id": "0c2a8d3beeb8b52fcd2e85a5fd414a8abca0c67f",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/projectStructure/StandaloneProjectFactory.kt"
    },
    {
      "type": "modify",
      "old_id": "f3f00e98356fbdec73db0c7f19da34c658997fc7",
      "old_mode": 33188,
      "old_path": "analysis/analysis-api/api/analysis-api-platform-interface.undocumented",
      "new_id": "28d0205e5c3e45c0c724f557f20ac1c7683d9517",
      "new_mode": 33188,
      "new_path": "analysis/analysis-api/api/analysis-api-platform-interface.undocumented"
    },
    {
      "type": "modify",
      "old_id": "f65c778763b36648153f89112f914a16bf14c084",
      "old_mode": 33188,
      "old_path": "compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/modules/CliJavaModuleResolver.kt",
      "new_id": "c14c5add7819b9b52189dfa67d174ad314908180",
      "new_mode": 33188,
      "new_path": "compiler/cli/cli-base/src/org/jetbrains/kotlin/cli/jvm/modules/CliJavaModuleResolver.kt"
    }
  ]
}
