[SLC] Keep default constructor parameters' values

This commit is contained in:
Pavel Mikhailovskii
2023-06-20 11:00:18 +00:00
committed by Space Team
parent bccd7bc04a
commit 79dbacb621
11 changed files with 406 additions and 2 deletions
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.light.classes.symbol.modifierLists.with
import org.jetbrains.kotlin.name.JvmNames.TRANSIENT_ANNOTATION_CLASS_ID
import org.jetbrains.kotlin.name.JvmNames.VOLATILE_ANNOTATION_CLASS_ID
import org.jetbrains.kotlin.psi.KtCallableDeclaration
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.psi.KtProperty
internal class SymbolLightFieldForProperty private constructor(
@@ -186,8 +187,12 @@ internal class SymbolLightFieldForProperty private constructor(
private val _initializer by lazyPub {
_initializerValue?.createPsiExpression(this) ?: withPropertySymbol { propertySymbol ->
if (propertySymbol !is KtKotlinPropertySymbol) return@withPropertySymbol null
(kotlinOrigin as? KtProperty)?.initializer?.evaluateAsAnnotationValue()
?.let(::toPsiExpression)
val initializerExpression = when (kotlinOrigin) {
is KtProperty -> kotlinOrigin.initializer
is KtParameter -> kotlinOrigin.defaultValue
else -> null
}
initializerExpression?.evaluateAsAnnotationValue()?.let(::toPsiExpression)
}
}
@@ -96,6 +96,12 @@ public class SymbolLightClassesByPsiForLibraryTestGenerated extends AbstractSymb
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
@@ -96,6 +96,12 @@ public class SymbolLightClassesEqualityByPsiForLibraryTestGenerated extends Abst
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
@@ -96,6 +96,12 @@ public class SymbolLightClassesParentingByPsiForLibraryTestGenerated extends Abs
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
@@ -96,6 +96,12 @@ public class SymbolLightClassesByPsiForSourceTestGenerated extends AbstractSymbo
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
@@ -96,6 +96,12 @@ public class SymbolLightClassesEqualityByPsiForSourceTestGenerated extends Abstr
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {
@@ -96,6 +96,12 @@ public class SymbolLightClassesParentingByPsiForSourceTestGenerated extends Abst
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultMethodInKotlinWithSettingAllCompatibility.kt");
}
@Test
@TestMetadata("defaultParameterValue.kt")
public void testDefaultParameterValue() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/defaultParameterValue.kt");
}
@Test
@TestMetadata("DelegatedProperty.kt")
public void testDelegatedProperty() throws Exception {