Skip to content

Commit

Permalink
UPDATE_AA_VERSION: 2.0.20-dev-2651
Browse files Browse the repository at this point in the history
  • Loading branch information
neetopia committed May 1, 2024
1 parent aedcde6 commit 524997e
Show file tree
Hide file tree
Showing 10 changed files with 25 additions and 22 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ junit5Version=5.8.2
junitPlatformVersion=1.8.2
googleTruthVersion=1.1

aaKotlinBaseVersion=2.0.20-dev-1634
aaKotlinBaseVersion=2.0.20-dev-2651
aaIntellijVersion=213.7172.25
aaGuavaVersion=29.0-jre
aaAsmVersion=9.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,8 @@ internal val DEAR_SHADOW_JAR_PLEASE_DO_NOT_REMOVE_THESE = listOf(
org.jetbrains.kotlin.analysis.api.standalone.base.providers.KotlinStandaloneDirectInheritorsProvider::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.services.LLRealFirElementByPsiElementChooser::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.LLFirSessionInvalidationService::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.stubBased.deserialization.LLStubBasedLibrarySymbolProviderFactory::class.java,
org.jetbrains.kotlin.analysis.low.level.api.fir.stubBased
.deserialization.LLStubBasedLibrarySymbolProviderFactory::class.java,
org.jetbrains.kotlin.analysis.providers.impl.KotlinProjectMessageBusProvider::class.java,
org.jetbrains.kotlin.idea.references.KotlinFirReferenceContributor::class.java,
org.jetbrains.kotlin.light.classes.symbol.SymbolKotlinAsJavaSupport::class.java,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import com.intellij.psi.PsiType
import com.intellij.psi.impl.source.PsiAnnotationMethodImpl
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
import org.jetbrains.kotlin.analysis.api.components.buildClassType
import org.jetbrains.kotlin.analysis.api.lifetime.KtAlwaysAccessibleLifetimeToken
import org.jetbrains.kotlin.analysis.api.symbols.KtClassOrObjectSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
import org.jetbrains.kotlin.analysis.api.types.KtType
Expand Down Expand Up @@ -107,7 +108,9 @@ class KSAnnotationJavaImpl private constructor(private val psi: PsiAnnotation, o
valueParameterSymbol.getDefaultValue()?.let { constantValue ->
KSValueArgumentImpl.getCached(
KtNamedAnnotationValue(
valueParameterSymbol.name, constantValue,
valueParameterSymbol.name,
constantValue,
KtAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project!!)
),
Origin.SYNTHETIC
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ 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.impl.symbol.kotlin.resolved.KSTypeReferenceResolvedImpl
Expand All @@ -29,6 +30,7 @@ import com.intellij.psi.PsiClass
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplicationWithArgumentsInfo
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
import org.jetbrains.kotlin.analysis.api.components.buildClassType
import org.jetbrains.kotlin.analysis.api.lifetime.KtAlwaysAccessibleLifetimeToken
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.*
import org.jetbrains.kotlin.psi.KtAnnotationEntry
Expand Down Expand Up @@ -88,7 +90,9 @@ class KSAnnotationImpl private constructor(
valueParameterSymbol.getDefaultValue()?.let { constantValue ->
KSValueArgumentImpl.getCached(
KtNamedAnnotationValue(
valueParameterSymbol.name, constantValue,
valueParameterSymbol.name,
constantValue,
KtAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project!!)
),
Origin.SYNTHETIC
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,18 +76,10 @@ class KSValueArgumentImpl private constructor(
}
}
} ?: KSErrorType
// TODO: handle local classes.
is KtKClassAnnotationValue -> {
val classDeclaration = when (this) {
is KtKClassAnnotationValue.KtNonLocalKClassAnnotationValue -> analyze {
(this@toValue.classId.toKtClassSymbol())?.let { KSClassDeclarationImpl.getCached(it) }
}
is KtKClassAnnotationValue.KtLocalKClassAnnotationValue -> analyze {
this@toValue.ktClass.getNamedClassOrObjectSymbol()?.let {
KSClassDeclarationImpl.getCached(it)
}
}
is KtKClassAnnotationValue.KtErrorClassAnnotationValue -> null
}
val classDeclaration =
(this@toValue.classId?.toKtClassSymbol())?.let { KSClassDeclarationImpl.getCached(it) }
classDeclaration?.asStarProjectedType() ?: KSErrorType
}
is KtConstantAnnotationValue -> this.constantValue.value
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package com.google.devtools.ksp.impl.symbol.kotlin.synthetic

import com.google.devtools.ksp.impl.ResolverAAImpl
import org.jetbrains.kotlin.analysis.api.annotations.KtAnnotationApplicationWithArgumentsInfo
import org.jetbrains.kotlin.analysis.api.lifetime.KtAlwaysAccessibleLifetimeToken
import org.jetbrains.kotlin.name.ClassId

fun getExtensionFunctionTypeAnnotation(index: Int) = KtAnnotationApplicationWithArgumentsInfo(
Expand All @@ -9,5 +11,6 @@ fun getExtensionFunctionTypeAnnotation(index: Int) = KtAnnotationApplicationWith
null,
emptyList(),
index,
null
null,
KtAlwaysAccessibleLifetimeToken(ResolverAAImpl.ktModule.project!!)
)
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,8 @@ internal fun KtAnnotationValue.render(): String {
is KtArrayAnnotationValue -> values.joinToString(",", "{", "}") { it.render() }
is KtConstantAnnotationValue -> constantValue.renderAsKotlinConstant()
is KtEnumEntryAnnotationValue -> callableId.toString()
is KtKClassAnnotationValue.KtErrorClassAnnotationValue -> "<Error class>"
is KtKClassAnnotationValue.KtLocalKClassAnnotationValue -> "$ktClass::class"
is KtKClassAnnotationValue.KtNonLocalKClassAnnotationValue -> "$classId::class"
// TODO: handle error classes.
is KtKClassAnnotationValue -> "$classId::class"
is KtUnsupportedAnnotationValue -> throw IllegalStateException("Unsupported annotation value: $this")
}
}
Expand Down
2 changes: 1 addition & 1 deletion kotlin-analysis-api/testData/errorTypes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
// kotlin.collections.Map
// kotlin.String
// ERROR TYPE
// errorInComponent is assignable from errorAtTop: true
// errorInComponent is assignable from errorAtTop: false
// errorInComponent is assignable from class C: false
// Any is assignable from errorInComponent: true
// class C is assignable from errorInComponent: false
Expand Down
4 changes: 2 additions & 2 deletions kotlin-analysis-api/testData/getPackage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,18 +20,18 @@
// symbols from package lib1
// lib1.propInSource KOTLIN
// lib1.funcFoo KOTLIN_LIB
// lib1.Foo KOTLIN_LIB
// lib1.FooInSource KOTLIN
// lib1.Bar JAVA_LIB
// lib1.Foo KOTLIN_LIB
// symbols from package lib2
// lib2.a KOTLIN_LIB
// lib2.Foo KOTLIN_LIB
// lib2.FooTypeAlias KOTLIN_LIB
// symbols from package main.test
// main.test.KotlinMain KOTLIN
// main.test.C JAVA
// main.test.D JAVA
// main.test.L JAVA
// main.test.C JAVA
// symbols from package non.exist
// END

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ class KSPAATest : AbstractKSPAATest() {
runTest("../kotlin-analysis-api/testData/annotationValue/java.kt")
}

@Disabled
@TestMetadata("annotationValue_kt.kt")
@Test
fun testAnnotationValue_kt() {
Expand Down

0 comments on commit 524997e

Please sign in to comment.