++ [LL API] Refactor designation path collection
diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt
index d5b3443..43b6f1e 100644
--- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt
+++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirDesignation.kt
@@ -64,6 +64,16 @@
             }
 
             val containingClassId = target.containingClassLookupTag()?.classId ?: return emptyList()
+
+            if (target.origin == FirDeclarationOrigin.SubstitutionOverride) {
+                val originalContainingClassId = target.originalForSubstitutionOverride?.containingClassLookupTag()?.classId
+                if (containingClassId == originalContainingClassId) {
+                    // Ugly temporary hack for call-site substitution overrides.
+                    // Containing class ID from the origin cannot be used, as the origin might be in a different module.
+                    return emptyList()
+                }
+            }
+
             return collectDesignationPathWithContainingClass(useSiteSession, containingClassId)
         }