[AA LC] Properly set type mapping mode for bounds of type parameters
This commit is contained in:
+2
-1
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithTypeParamet
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.markers.isPrivateOrPrivateToThis
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtNonErrorClassType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.getKtModuleOfTypeSafe
|
||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
|
||||
@@ -420,7 +421,7 @@ internal fun SymbolLightClassBase.createInheritanceList(forExtendsList: Boolean,
|
||||
.filter { it.needToAddTypeIntoList() }
|
||||
.mapNotNull { type ->
|
||||
if (type !is KtNonErrorClassType) return@mapNotNull null
|
||||
mapSuperType(type, this@createInheritanceList, kotlinCollectionAsIs = true)
|
||||
mapType(type, this@createInheritanceList, KtTypeMappingMode.SUPER_TYPE)
|
||||
}
|
||||
.forEach { listBuilder.addReference(it) }
|
||||
|
||||
|
||||
+3
-2
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.analysis.api.lifetime.isValid
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtClassErrorType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtNonErrorClassType
|
||||
import org.jetbrains.kotlin.analysis.api.types.KtTypeMappingMode
|
||||
import org.jetbrains.kotlin.asJava.classes.KotlinSuperTypeListBuilder
|
||||
import org.jetbrains.kotlin.asJava.classes.cannotModify
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
@@ -26,7 +27,7 @@ import org.jetbrains.kotlin.asJava.elements.KtLightDeclaration
|
||||
import org.jetbrains.kotlin.idea.KotlinLanguage
|
||||
import org.jetbrains.kotlin.light.classes.symbol.basicIsEquivalentTo
|
||||
import org.jetbrains.kotlin.light.classes.symbol.invalidAccess
|
||||
import org.jetbrains.kotlin.light.classes.symbol.mapSuperType
|
||||
import org.jetbrains.kotlin.light.classes.symbol.mapType
|
||||
import org.jetbrains.kotlin.name.StandardClassIds
|
||||
import org.jetbrains.kotlin.psi.KtTypeParameter
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
@@ -71,7 +72,7 @@ internal class SymbolLightTypeParameter(
|
||||
}
|
||||
}
|
||||
.mapNotNull {
|
||||
mapSuperType(it, this@SymbolLightTypeParameter)
|
||||
mapType(it, this@SymbolLightTypeParameter, KtTypeMappingMode.GENERIC_ARGUMENT)
|
||||
}
|
||||
.forEach { listBuilder.addReference(it) }
|
||||
|
||||
|
||||
+3
-3
@@ -37,15 +37,15 @@ internal fun <L : Any> L.invalidAccess(): Nothing =
|
||||
error("Cls delegate shouldn't be accessed for symbol light classes! Qualified name: ${javaClass.name}")
|
||||
|
||||
|
||||
internal fun KtAnalysisSession.mapSuperType(
|
||||
internal fun KtAnalysisSession.mapType(
|
||||
type: KtType,
|
||||
psiContext: PsiElement,
|
||||
kotlinCollectionAsIs: Boolean = false
|
||||
mode: KtTypeMappingMode
|
||||
): PsiClassType? {
|
||||
if (type is KtClassErrorType) return null
|
||||
val psiType = type.asPsiType(
|
||||
psiContext,
|
||||
if (kotlinCollectionAsIs) KtTypeMappingMode.SUPER_TYPE_KOTLIN_COLLECTIONS_AS_IS else KtTypeMappingMode.SUPER_TYPE,
|
||||
mode,
|
||||
)
|
||||
return psiType as? PsiClassType
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user