WIP JAVA PARAM NAME
diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KaFirValueParameterSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KaFirValueParameterSymbol.kt
index 3c1508b..46552df 100644
--- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KaFirValueParameterSymbol.kt
+++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KaFirValueParameterSymbol.kt
@@ -6,6 +6,7 @@
 package org.jetbrains.kotlin.analysis.api.fir.symbols
 
 import com.intellij.psi.PsiElement
+import com.intellij.psi.impl.compiled.ClsParameterImpl
 import org.jetbrains.kotlin.KtFakeSourceElementKind
 import org.jetbrains.kotlin.analysis.api.annotations.KaAnnotationList
 import org.jetbrains.kotlin.analysis.api.fir.KaFirSession
@@ -29,6 +30,7 @@
 import org.jetbrains.kotlin.fir.declarations.utils.isActual
 import org.jetbrains.kotlin.fir.declarations.utils.isExpect
 import org.jetbrains.kotlin.fir.declarations.utils.visibility
+import org.jetbrains.kotlin.fir.psi
 import org.jetbrains.kotlin.fir.renderWithType
 import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol
 import org.jetbrains.kotlin.fir.types.varargElementType
@@ -40,7 +42,13 @@
 ) : KaValueParameterSymbol(), KaFirSymbol<FirValueParameterSymbol> {
     override val psi: PsiElement? get() = withValidityAssertion { firSymbol.findPsi() }
 
-    override val name: Name get() = withValidityAssertion { firSymbol.name }
+    override val name: Name
+        get() = withValidityAssertion {
+            val psi = firSymbol.fir.psi
+            if (psi is ClsParameterImpl) return@withValidityAssertion Name.identifier(psi.name)
+
+            firSymbol.name
+        }
 
     override val isVararg: Boolean get() = withValidityAssertion { firSymbol.isVararg }
 
diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt
index 5cd6811..fcef235 100644
--- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt
+++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/javaAnnotationsMapping.kt
@@ -158,7 +158,7 @@
     isFromSource = this@toFirValueParameter.isFromSource
     this.moduleData = moduleData
     containingFunctionSymbol = functionSymbol
-    name = this@toFirValueParameter.name ?: Name.identifier("p$index")
+    name = this@toFirValueParameter.nonGeneratedName() ?: Name.identifier("p$index")
     returnTypeRef = type.toFirJavaTypeRef(session, source)
     isVararg = this@toFirValueParameter.isVararg
     annotationBuilder = { convertAnnotationsToFir(session, source) }
diff --git a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaValueParameterImpl.java b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaValueParameterImpl.java
index cf48617..106b269 100644
--- a/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaValueParameterImpl.java
+++ b/compiler/resolution.common.jvm/src/org/jetbrains/kotlin/load/java/structure/impl/JavaValueParameterImpl.java
@@ -100,6 +100,14 @@
     }
 
     @Override
+    @Nullable
+    public Name nonGeneratedName() {
+        PsiParameter psi = getPsi();
+        if (psi instanceof ClsParameterImpl) return null;
+        return getName();
+    }
+
+    @Override
     @NotNull
     public JavaType getType() {
         return JavaTypeImpl.create(getPsi().getType(), createVariableReturnTypeSource(psiElementSource));
diff --git a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/structure/javaElements.kt b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/structure/javaElements.kt
index cbd0058..d2f9d95 100644
--- a/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/structure/javaElements.kt
+++ b/core/compiler.common.jvm/src/org/jetbrains/kotlin/load/java/structure/javaElements.kt
@@ -151,6 +151,8 @@
     val type: JavaType
     val isVararg: Boolean
     val isFromSource: Boolean
+
+    fun nonGeneratedName(): Name? = name
 }
 
 interface JavaRecordComponent : JavaMember {