)]}'
{
  "commit": "8b277dbf2a0b59c00963dac3dde55cf06a3f4dc6",
  "tree": "a3366277de33d89689f18c59f3a5c7c2409eb0a8",
  "parents": [
    "f26d35943da86d87d85648a79bd968950ac38383"
  ],
  "author": {
    "name": "Marco Pennekamp",
    "email": "marco.pennekamp@jetbrains.com",
    "time": "Mon Jul 21 23:45:32 2025 +0200"
  },
  "committer": {
    "name": "Space Team",
    "email": "noreply@jetbrains.team",
    "time": "Tue Jul 22 21:27:32 2025 +0000"
  },
  "message": "[FIR] Redeclarations: Skip visibility checks for top-level classifiers\n\n- Redeclaration checks for private top-level classifiers previously only\n  worked in the K2 compiler by accident. Usually, the visibility check\n  would have ruled out a conflict, but it was skipped due to a bug. See\n  KT-79456 for a detailed investigation.\n- In general, two classifiers with the same `ClassId` will conflict in\n  the same module regardless of visibility. Hence, it\u0027s best to skip\n  visibility checks for top-level classifiers completely.\n  - Since `FirMemberDeclaration` only has two inheritors,\n    `FirCallableDeclaration` and `FirClassLikeDeclaration`, we can check\n    for `FirCallableDeclaration` directly.\n- Note that functions and properties are already covered by the test\n  `RedeclaringPrivateToFile.kt`.\n\n^KT-79456 fixed\n^KTIJ-25422 fixed\n^KTIJ-30120 fixed\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c99707cfbe8e3cff1960b29efe6a0ab7455e002e",
      "old_mode": 33188,
      "old_path": "compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConflictsHelpers.kt",
      "new_id": "667edc5ac8c3d2382d653bbc0626e279555f3408",
      "new_mode": 33188,
      "new_path": "compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConflictsHelpers.kt"
    },
    {
      "type": "modify",
      "old_id": "c1827dd60f32f12932199aabf88dd67f006131c7",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/redeclarations/privateClasses.fir.kt",
      "new_id": "f4c36f98d106057618a8c2a09f394bd16bd555f3",
      "new_mode": 33188,
      "new_path": "compiler/testData/diagnostics/tests/redeclarations/privateClasses.fir.kt"
    },
    {
      "type": "delete",
      "old_id": "f1ed6844d0b2b98f7c1ef0e4a52043ac1322f705",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/redeclarations/privateClasses.ll.kt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "8dd88a207564fe3f648cbd590626d63bfd1ff1ae",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/redeclarations/privateTypeAliases.fir.kt",
      "new_id": "1d15d30ab1b5c1af29a88132386b54d01d919a98",
      "new_mode": 33188,
      "new_path": "compiler/testData/diagnostics/tests/redeclarations/privateTypeAliases.fir.kt"
    },
    {
      "type": "delete",
      "old_id": "a5cb40403e547c3be7bd7e7edbacc404eda510d8",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/redeclarations/privateTypeAliases.ll.kt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "b7478aca42b14ed19c51795349ec42bcf0eef3f1",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/typealias/privateInFile.fir.kt",
      "new_id": "ac7624f09bc373217133d33c6df5a4b2cf15eb3f",
      "new_mode": 33188,
      "new_path": "compiler/testData/diagnostics/tests/typealias/privateInFile.fir.kt"
    },
    {
      "type": "delete",
      "old_id": "47ebb7a4088bd7a004a2fa9f36df903ce9612238",
      "old_mode": 33188,
      "old_path": "compiler/testData/diagnostics/tests/typealias/privateInFile.ll.kt",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
