diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
index b43793f..c13053c 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeDependentAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
@@ -46,6 +46,12 @@
   }
 
   @Test
+  @TestMetadata("classNameClash.kt")
+  public void testClassNameClash() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt");
+  }
+
+  @Test
   @TestMetadata("classes.kt")
   public void testClasses() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classes.kt");
diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
index 899f72c..c42b28b 100644
--- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
+++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirIdeNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
@@ -46,6 +46,12 @@
   }
 
   @Test
+  @TestMetadata("classNameClash.kt")
+  public void testClassNameClash() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt");
+  }
+
+  @Test
   @TestMetadata("classes.kt")
   public void testClasses() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classes.kt");
diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/symbolTestUtils.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/symbolTestUtils.kt
index 6dd0e84..cb67ea4 100644
--- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/symbolTestUtils.kt
+++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/symbolTestUtils.kt
@@ -8,6 +8,8 @@
 import org.jetbrains.kotlin.analysis.api.KaSession
 import org.jetbrains.kotlin.analysis.api.symbols.KaCallableSymbol
 import org.jetbrains.kotlin.analysis.api.symbols.KaFileSymbol
+import org.jetbrains.kotlin.analysis.api.symbols.KaFunctionSymbol
+import org.jetbrains.kotlin.analysis.api.symbols.KaParameterSymbol
 import org.jetbrains.kotlin.analysis.api.symbols.KaSymbol
 import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolOrigin
 import org.jetbrains.kotlin.analysis.api.symbols.isLocal
@@ -35,17 +37,17 @@
     symbol: KaCallableSymbol,
     testServices: TestServices
 ) {
-    if (ktFile.isScript()) return
-    val expectedClassName = when {
-        symbol.isLocal ->
-            null
-        ktClass != null ->
-            // member
-            ktClass.getClassId()?.asFqNameString()
-        else ->
-            // top-level
-            ktFile.javaFileFacadeFqName.asString()
+    fun KaCallableSymbol.computeExpectedJvmClassName(): String? {
+        return when {
+            this is KaParameterSymbol -> (containingSymbol as KaFunctionSymbol).computeExpectedJvmClassName()
+            this.isLocal -> null
+            ktClass != null -> ktClass.getClassId()?.asFqNameString() // Member
+            else -> ktFile.javaFileFacadeFqName.asString() // Top-level
+        }
     }
+
+    if (ktFile.isScript()) return
+    val expectedClassName = symbol.computeExpectedJvmClassName()
     val actualClassName = symbol.containingJvmClassName
     testServices.assertions.assertEquals(expectedClassName, actualClassName) {
         "Invalid JvmClassName for $symbol, expected $expectedClassName but $actualClassName found"
diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
index 3ea349c..db90572 100644
--- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
+++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/containingDeclarationProvider/FirStandaloneNormalAnalysisSourceModuleContainingDeclarationProviderByPsiTestGenerated.java
@@ -46,6 +46,12 @@
   }
 
   @Test
+  @TestMetadata("classNameClash.kt")
+  public void testClassNameClash() {
+    runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt");
+  }
+
+  @Test
   @TestMetadata("classes.kt")
   public void testClasses() {
     runTest("analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classes.kt");
diff --git a/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt
new file mode 100644
index 0000000..e63c0bc
--- /dev/null
+++ b/analysis/analysis-api/testData/components/containingDeclarationProvider/containingDeclarationByPsi/classNameClash.kt
@@ -0,0 +1,3 @@
+class A(val x: Int) {}
+
+open class A()
\ No newline at end of file
