FIR IDE: remove KtTypedSymbol interface as all its inheritors are KtCallableSymbol
This commit is contained in:
committed by
TeamCityServer
parent
bbe5cf0a70
commit
0ba6412f96
+2
-2
@@ -9,8 +9,8 @@ import com.intellij.codeInsight.lookup.LookupElement
|
|||||||
import com.intellij.codeInsight.lookup.LookupElementWeigher
|
import com.intellij.codeInsight.lookup.LookupElementWeigher
|
||||||
import com.intellij.openapi.util.Key
|
import com.intellij.openapi.util.Key
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCallableSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypedSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||||
import org.jetbrains.kotlin.psi.UserDataProperty
|
import org.jetbrains.kotlin.psi.UserDataProperty
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ internal object ExpectedTypeWeigher {
|
|||||||
expectedType: KtType?
|
expectedType: KtType?
|
||||||
) = when {
|
) = when {
|
||||||
expectedType == null -> MatchesExpectedType.NON_TYPABLE
|
expectedType == null -> MatchesExpectedType.NON_TYPABLE
|
||||||
symbol !is KtTypedSymbol -> MatchesExpectedType.NON_TYPABLE
|
symbol !is KtCallableSymbol -> MatchesExpectedType.NON_TYPABLE
|
||||||
else -> MatchesExpectedType.matches(symbol.annotatedType.type isSubTypeOf expectedType)
|
else -> MatchesExpectedType.matches(symbol.annotatedType.type isSubTypeOf expectedType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -6,11 +6,12 @@
|
|||||||
package org.jetbrains.kotlin.idea.frontend.api.symbols
|
package org.jetbrains.kotlin.idea.frontend.api.symbols
|
||||||
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithKind
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypedSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
|
|
||||||
abstract class KtCallableSymbol : KtSymbol, KtTypedSymbol, KtSymbolWithKind {
|
abstract class KtCallableSymbol : KtSymbol, KtSymbolWithKind {
|
||||||
abstract val callableIdIfNonLocal: CallableId?
|
abstract val callableIdIfNonLocal: CallableId?
|
||||||
|
abstract val annotatedType: KtTypeAndAnnotations
|
||||||
abstract override fun createPointer(): KtSymbolPointer<KtCallableSymbol>
|
abstract override fun createPointer(): KtSymbolPointer<KtCallableSymbol>
|
||||||
}
|
}
|
||||||
+1
-1
@@ -28,7 +28,7 @@ sealed class KtPropertyAccessorSymbol : KtCallableSymbol(),
|
|||||||
abstract override fun createPointer(): KtSymbolPointer<KtPropertyAccessorSymbol>
|
abstract override fun createPointer(): KtSymbolPointer<KtPropertyAccessorSymbol>
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KtPropertyGetterSymbol : KtPropertyAccessorSymbol(), KtTypedSymbol {
|
abstract class KtPropertyGetterSymbol : KtPropertyAccessorSymbol() {
|
||||||
abstract override fun createPointer(): KtSymbolPointer<KtPropertyGetterSymbol>
|
abstract override fun createPointer(): KtSymbolPointer<KtPropertyGetterSymbol>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-4
@@ -18,10 +18,6 @@ interface KtNamedSymbol : KtPossiblyNamedSymbol {
|
|||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
}
|
}
|
||||||
|
|
||||||
interface KtTypedSymbol : KtSymbol {
|
|
||||||
val annotatedType: KtTypeAndAnnotations
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KtSymbolWithTypeParameters {
|
interface KtSymbolWithTypeParameters {
|
||||||
val typeParameters: List<KtTypeParameterSymbol>
|
val typeParameters: List<KtTypeParameterSymbol>
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ internal fun <L : Any> L.invalidAccess(): Nothing =
|
|||||||
private fun PsiElement.nonExistentType() = JavaPsiFacade.getElementFactory(project)
|
private fun PsiElement.nonExistentType() = JavaPsiFacade.getElementFactory(project)
|
||||||
.createTypeFromText("error.NonExistentClass", this)
|
.createTypeFromText("error.NonExistentClass", this)
|
||||||
|
|
||||||
internal fun KtTypedSymbol.asPsiType(parent: PsiElement, phase: FirResolvePhase): PsiType =
|
internal fun KtCallableSymbol.asPsiType(parent: PsiElement, phase: FirResolvePhase): PsiType =
|
||||||
annotatedType.asPsiType(this, parent, phase)
|
annotatedType.asPsiType(this, parent, phase)
|
||||||
|
|
||||||
internal fun KtTypeAndAnnotations.asPsiType(
|
internal fun KtTypeAndAnnotations.asPsiType(
|
||||||
|
|||||||
+1
-2
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFirSafe
|
|||||||
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.components.KtExpressionTypeProvider
|
import org.jetbrains.kotlin.idea.frontend.api.components.KtExpressionTypeProvider
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypedSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtErrorType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtErrorType
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||||
@@ -103,7 +102,7 @@ internal class KtFirExpressionTypeProvider(
|
|||||||
private fun getExpectedTypeByReturnExpression(expression: PsiElement): KtType? {
|
private fun getExpectedTypeByReturnExpression(expression: PsiElement): KtType? {
|
||||||
val returnParent = expression.getReturnExpressionWithThisType() ?: return null
|
val returnParent = expression.getReturnExpressionWithThisType() ?: return null
|
||||||
val targetSymbol = with(analysisSession) { returnParent.getReturnTargetSymbol() } ?: return null
|
val targetSymbol = with(analysisSession) { returnParent.getReturnTargetSymbol() } ?: return null
|
||||||
return (targetSymbol as? KtTypedSymbol)?.annotatedType?.type
|
return targetSymbol.annotatedType.type
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun PsiElement.getReturnExpressionWithThisType(): KtReturnExpression? =
|
private fun PsiElement.getReturnExpressionWithThisType(): KtReturnExpression? =
|
||||||
|
|||||||
Reference in New Issue
Block a user