Skip to content

Commit

Permalink
AA: remove java type ref workaround except for value parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
neetopia committed Mar 13, 2023
1 parent 6f7c046 commit 3fde562
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 35 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,9 @@ import com.google.devtools.ksp.KSObjectCache
import com.google.devtools.ksp.processing.impl.KSNameImpl
import com.google.devtools.ksp.symbol.*
import com.intellij.psi.PsiClass
import org.jetbrains.kotlin.analysis.api.fir.symbols.KtFirFunctionSymbol
import org.jetbrains.kotlin.analysis.api.symbols.*
import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod
import org.jetbrains.kotlin.fir.java.resolveIfJavaType
import org.jetbrains.kotlin.fir.resolve.getContainingClass
import org.jetbrains.kotlin.fir.symbols.SymbolInternals
import org.jetbrains.kotlin.psi.KtDeclaration
import org.jetbrains.kotlin.psi.KtFunction

Expand Down Expand Up @@ -68,19 +62,7 @@ class KSFunctionDeclarationImpl private constructor(internal val ktFunctionSymbo
}
}

@OptIn(SymbolInternals::class)
override val returnType: KSTypeReference? by lazy {
// FIXME: temporary workaround before upstream fixes java type refs.
if (origin == Origin.JAVA) {
if (ktFunctionSymbol is KtFirFunctionSymbol) {
(ktFunctionSymbol.firSymbol.fir as? FirJavaMethod)?.also {
it.returnTypeRef = it.returnTypeRef.resolveIfJavaType(
it.moduleData.session,
(it.getContainingClass(it.moduleData.session) as FirJavaClass).javaTypeParameterStack
)
}
}
}
analyze {
// Constructors
if (ktFunctionSymbol is KtConstructorSymbol) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@ package com.google.devtools.ksp.impl.symbol.kotlin
import com.google.devtools.ksp.KSObjectCache
import com.google.devtools.ksp.processing.impl.KSNameImpl
import com.google.devtools.ksp.symbol.*
import org.jetbrains.kotlin.analysis.api.fir.symbols.KtFirJavaFieldSymbol
import org.jetbrains.kotlin.analysis.api.symbols.KtJavaFieldSymbol
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
import org.jetbrains.kotlin.fir.java.declarations.FirJavaField
import org.jetbrains.kotlin.fir.java.resolveIfJavaType
import org.jetbrains.kotlin.fir.resolve.getContainingClass
import org.jetbrains.kotlin.fir.symbols.SymbolInternals

class KSPropertyDeclarationJavaImpl private constructor(private val ktJavaFieldSymbol: KtJavaFieldSymbol) :
KSPropertyDeclaration,
Expand All @@ -29,15 +23,7 @@ class KSPropertyDeclarationJavaImpl private constructor(private val ktJavaFieldS
override val extensionReceiver: KSTypeReference?
get() = null

@OptIn(SymbolInternals::class)
override val type: KSTypeReference by lazy {
// FIXME: temporary workaround before upstream fixes java type refs.
((ktJavaFieldSymbol as KtFirJavaFieldSymbol).firSymbol.fir as FirJavaField).also {
it.returnTypeRef = it.returnTypeRef.resolveIfJavaType(
it.moduleData.session,
(it.getContainingClass(it.moduleData.session) as FirJavaClass).javaTypeParameterStack
)
}
KSTypeReferenceImpl.getCached(ktJavaFieldSymbol.returnType, this@KSPropertyDeclarationJavaImpl)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class KSValueParameterImpl private constructor(
override val type: KSTypeReference by lazy {
// FIXME: temporary workaround before upstream fixes java type refs.
if (origin == Origin.JAVA || origin == Origin.JAVA_LIB) {
((ktValueParameterSymbol as KtFirValueParameterSymbol).firSymbol.fir as FirJavaValueParameter).also {
((ktValueParameterSymbol as KtFirValueParameterSymbol).firSymbol.fir as? FirJavaValueParameter)?.let {
// can't get containing class for FirJavaValueParameter, using empty stack for now.
it.returnTypeRef =
it.returnTypeRef.resolveIfJavaType(it.moduleData.session, JavaTypeParameterStack.EMPTY)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,6 @@ class KSPAATest : AbstractKSPAATest() {
runTest("../test-utils/testData/api/implicitPropertyAccessors.kt")
}

@Disabled
@TestMetadata("inheritedTypeAlias.kt")
@Test
fun testInheritedTypeAlias() {
Expand Down Expand Up @@ -356,7 +355,6 @@ class KSPAATest : AbstractKSPAATest() {
runTest("../test-utils/testData/api/javaTypes.kt")
}

@Disabled
@TestMetadata("javaTypes2.kt")
@Test
fun testJavaTypes2() {
Expand Down

0 comments on commit 3fde562

Please sign in to comment.