diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/java/KSAnnotationJavaImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/java/KSAnnotationJavaImpl.kt index 60fa2876d0..ffa74f396b 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/java/KSAnnotationJavaImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/java/KSAnnotationJavaImpl.kt @@ -40,8 +40,6 @@ import com.intellij.psi.PsiType import com.intellij.psi.impl.compiled.ClsClassImpl import org.jetbrains.kotlin.analysis.api.KaImplementationDetail import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaBaseNamedAnnotationValue -import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaUnsupportedAnnotationValueImpl -import org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken import org.jetbrains.kotlin.analysis.api.symbols.KaClassSymbol import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolOrigin import org.jetbrains.kotlin.analysis.api.types.KaType @@ -136,7 +134,7 @@ class KSAnnotationJavaImpl private constructor(private val psi: PsiAnnotation, o } } } else { - symbol.valueParameters.map { valueParameterSymbol -> + symbol.valueParameters.mapNotNull { valueParameterSymbol -> valueParameterSymbol.getDefaultValue().let { constantValue -> KSValueArgumentImpl.getCached( KaBaseNamedAnnotationValue( @@ -145,10 +143,7 @@ class KSAnnotationJavaImpl private constructor(private val psi: PsiAnnotation, o // fallback to unsupported annotation value to indicate such use cases. // when seeing unsupported annotation value we return `null` for the value. // which might still be incorrect but there might not be a perfect way. - constantValue - ?: KaUnsupportedAnnotationValueImpl( - KotlinAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project) - ) + constantValue ?: return@let null ), this@KSAnnotationJavaImpl, Origin.SYNTHETIC diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSAnnotationImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSAnnotationImpl.kt index 5f2a7a071d..a8e0e05a8a 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSAnnotationImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/KSAnnotationImpl.kt @@ -20,7 +20,6 @@ package com.google.devtools.ksp.impl.symbol.kotlin import com.google.devtools.ksp.common.IdKeyPair import com.google.devtools.ksp.common.KSObjectCache import com.google.devtools.ksp.common.impl.KSNameImpl -import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.impl.symbol.java.KSValueArgumentLiteImpl import com.google.devtools.ksp.impl.symbol.java.calcValue import com.google.devtools.ksp.symbol.* @@ -31,8 +30,6 @@ import com.intellij.psi.impl.compiled.ClsClassImpl import org.jetbrains.kotlin.analysis.api.KaImplementationDetail import org.jetbrains.kotlin.analysis.api.annotations.KaAnnotation import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaBaseNamedAnnotationValue -import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaUnsupportedAnnotationValueImpl -import org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolOrigin import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.* import org.jetbrains.kotlin.psi.KtAnnotationEntry @@ -106,15 +103,12 @@ class KSAnnotationImpl private constructor( } } else { symbol.memberScope.constructors.singleOrNull()?.let { - it.valueParameters.map { valueParameterSymbol -> + it.valueParameters.mapNotNull { valueParameterSymbol -> valueParameterSymbol.getDefaultValue().let { constantValue -> KSValueArgumentImpl.getCached( KaBaseNamedAnnotationValue( valueParameterSymbol.name, - constantValue - ?: KaUnsupportedAnnotationValueImpl( - KotlinAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project) - ) + constantValue ?: return@let null ), this@KSAnnotationImpl, Origin.SYNTHETIC diff --git a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/resolved/KSAnnotationResolvedImpl.kt b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/resolved/KSAnnotationResolvedImpl.kt index d540b23c62..b2268c0d2f 100644 --- a/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/resolved/KSAnnotationResolvedImpl.kt +++ b/kotlin-analysis-api/src/main/kotlin/com/google/devtools/ksp/impl/symbol/kotlin/resolved/KSAnnotationResolvedImpl.kt @@ -3,7 +3,6 @@ package com.google.devtools.ksp.impl.symbol.kotlin.resolved import com.google.devtools.ksp.common.IdKeyPair import com.google.devtools.ksp.common.KSObjectCache import com.google.devtools.ksp.common.impl.KSNameImpl -import com.google.devtools.ksp.impl.ResolverAAImpl import com.google.devtools.ksp.impl.symbol.java.KSValueArgumentLiteImpl import com.google.devtools.ksp.impl.symbol.java.calcValue import com.google.devtools.ksp.impl.symbol.kotlin.* @@ -27,8 +26,6 @@ import com.intellij.psi.impl.compiled.ClsClassImpl import org.jetbrains.kotlin.analysis.api.KaImplementationDetail import org.jetbrains.kotlin.analysis.api.annotations.KaAnnotation import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaBaseNamedAnnotationValue -import org.jetbrains.kotlin.analysis.api.impl.base.annotations.KaUnsupportedAnnotationValueImpl -import org.jetbrains.kotlin.analysis.api.platform.lifetime.KotlinAlwaysAccessibleLifetimeToken import org.jetbrains.kotlin.analysis.api.symbols.KaSymbolOrigin import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.* @@ -96,15 +93,12 @@ class KSAnnotationResolvedImpl private constructor( } } else { symbol.memberScope.constructors.singleOrNull()?.let { - it.valueParameters.map { valueParameterSymbol -> + it.valueParameters.mapNotNull { valueParameterSymbol -> valueParameterSymbol.getDefaultValue().let { constantValue -> KSValueArgumentImpl.getCached( KaBaseNamedAnnotationValue( valueParameterSymbol.name, - constantValue - ?: KaUnsupportedAnnotationValueImpl( - KotlinAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project) - ) + constantValue ?: return@let null ), this@KSAnnotationResolvedImpl, Origin.SYNTHETIC diff --git a/kotlin-analysis-api/testData/annotationValue/annotationValue_kt.kt b/kotlin-analysis-api/testData/annotationValue/annotationValue_kt.kt index d692dcd91a..94aa857acd 100644 --- a/kotlin-analysis-api/testData/annotationValue/annotationValue_kt.kt +++ b/kotlin-analysis-api/testData/annotationValue/annotationValue_kt.kt @@ -20,9 +20,6 @@ // EXPECTED: // defaultInNested // [] -// null -// null -// null // SomeClass$WithDollarSign // Str // 42