[SLC] prefer sourcePsiSafe to psiSafe

We should use only source declarations as anchors as it is a predictable
contract

^KT-64772
This commit is contained in:
Dmitrii Gridin
2024-01-29 15:15:11 +01:00
committed by Space Team
parent b8306c8242
commit 042042768f
3 changed files with 5 additions and 6 deletions
@@ -268,7 +268,7 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
classOrObjectSymbol.getStaticDeclaredMemberScope().getCallableSymbols()
.filterIsInstance<KtEnumEntrySymbol>()
.mapNotNullTo(result) {
val enumEntry = it.psiSafe<KtEnumEntry>()
val enumEntry = it.sourcePsiSafe<KtEnumEntry>()
val name = enumEntry?.name ?: return@mapNotNullTo null
SymbolLightFieldForEnumEntry(
enumEntry = enumEntry,
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -544,7 +544,7 @@ internal fun KtSymbolWithMembers.createInnerClasses(
// we can't prohibit creating light classes with null names either since they can contain members
getStaticDeclaredMemberScope().getClassifierSymbols().filterIsInstance<KtNamedClassOrObjectSymbol>().mapTo(result) {
val classOrObjectDeclaration = it.psiSafe<KtClassOrObject>()
val classOrObjectDeclaration = it.sourcePsiSafe<KtClassOrObject>()
if (classOrObjectDeclaration != null) {
createLightClassNoCache(classOrObjectDeclaration, containingClass.ktModule)
} else {
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
@@ -16,7 +16,6 @@ import com.intellij.psi.search.SearchScope
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
import org.jetbrains.kotlin.analysis.api.symbols.KtTypeParameterSymbol
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
import org.jetbrains.kotlin.analysis.api.symbols.psiSafe
import org.jetbrains.kotlin.analysis.api.symbols.sourcePsiSafe
import org.jetbrains.kotlin.analysis.api.types.KtErrorType
import org.jetbrains.kotlin.analysis.api.types.KtNonErrorClassType
@@ -52,7 +51,7 @@ internal class SymbolLightTypeParameter private constructor(
index = index,
typeParameterSymbolPointer = with(ktAnalysisSession) { typeParameterSymbol.createPointer() },
typeParameterDeclaration = typeParameterSymbol.sourcePsiSafe(),
kotlinOrigin = typeParameterSymbol.psiSafe(),
kotlinOrigin = typeParameterSymbol.sourcePsiSafe(),
)
private val ktModule: KtModule get() = parent.ktModule