)]}'
{
  "commit": "99fccbb3b3acda365797cc5325e69bbd20429c07",
  "tree": "8af8bda1fd890328589f114e84e0a9eee574954b",
  "parents": [
    "4c4cbacf8e088a6d5c32b038366301d393b2dd12"
  ],
  "author": {
    "name": "Yan Zhulanow",
    "email": "yan.zhulanow@jetbrains.com",
    "time": "Wed Jan 29 00:26:02 2025 +0900"
  },
  "committer": {
    "name": "Yan Zhulanow",
    "email": "yan.zhulanow@jetbrains.com",
    "time": "Tue Feb 25 21:58:20 2025 +0900"
  },
  "message": "[Analysis API] Resolve JVM counterpart callables on STATUS\n\nCertain kotlin-stdlib classes are mapped to classes from the JDK,\nsuch as, \u0027kotlin.collections.Collection\u0027 maps to \u0027java.util.Collection\u0027.\n\nUse-site scope of mapped classes provides \u0027JvmMappedScope\u0027 as a declared\nmember scope. On iteration over supertype callables performed during\nthe STATUS phase (\u0027FirStatusResolver.getOverriddenFunctions\u0027),\n\u0027JvmMappedScope\u0027 processes callables across both Kotlin and Java\nhierarchies.\n\nWhile STATUS in the LL FIR force-resolves callables of Kotlin supertypes\n(\u0027LLFirStatusTargetResolver.resolveClass\u0027), callables back-mapped from\nJava supertypes stay intact. E.g.:\n\n```\nkotlin.collections.Collection: kotlin.collections.Iterable // handled\n// is mapped to\njava.util.Collection: kotlin.collections.MutableIterable // not handled!\n```\n\nThe fix performs additional resolution for mapped stdlib classes,\nanalyzing callables from both Kotlin and Java type hierarchy.\n\nThe problem is specific to the Kotlin compiler project where stdlib\nclasses come in sources. In other projects, the kotlin-stdlib is already\ncompiled, so no JVM-mapped require analysis.\n\n^KT-74740 Fixed\n\n(cherry picked from commit 0a7ba1a5760794d606d27d317095cc42fb39c5b6)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8fae462fa21a295cb9d3dfed6f146dad6e3f9e34",
      "old_mode": 33188,
      "old_path": "analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt",
      "new_id": "2042096e00c16c92293c32fd097a61b70bbccaae",
      "new_mode": 33188,
      "new_path": "analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirStatusLazyResolver.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1b034e63a6fbd2a5dff21b94c2155d1beec15446",
      "new_mode": 33188,
      "new_path": "analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.kt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ede90d3709851625c32a79e9905edcd3d879068",
      "new_mode": 33188,
      "new_path": "analysis/low-level-api-fir/testData/lazyResolve/noRuntime/mappedTypeResolution.txt"
    },
    {
      "type": "modify",
      "old_id": "14eaf77b2ccbbe4d118c498850ffba88935dbc6e",
      "old_mode": 33188,
      "old_path": "analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java",
      "new_id": "90099ba9a7bde209eae27680d678dc5a3449bffd",
      "new_mode": 33188,
      "new_path": "analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java"
    },
    {
      "type": "modify",
      "old_id": "797ae6ebb90fc99f187c766986fce02dfaf38cd5",
      "old_mode": 33188,
      "old_path": "analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java",
      "new_id": "e1082df1a53132a1efb993e7283788d89a77bc8d",
      "new_mode": 33188,
      "new_path": "analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java"
    },
    {
      "type": "modify",
      "old_id": "5236203c78b265d0fe671464fe14f1c2e5f918c6",
      "old_mode": 33188,
      "old_path": "compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt",
      "new_id": "7dabf962658832f72f9010242e1e7b732ba6150c",
      "new_mode": 33188,
      "new_path": "compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt"
    }
  ]
}
