FIR IDE: Add parameter's and type's properties required for completion
This commit is contained in:
+3
-1
@@ -13,7 +13,9 @@ abstract class KtEnumEntrySymbol : KtVariableLikeSymbol() {
|
||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||
}
|
||||
|
||||
abstract class KtParameterSymbol : KtVariableLikeSymbol()
|
||||
abstract class KtParameterSymbol : KtVariableLikeSymbol() {
|
||||
abstract val hasDefaultValue: Boolean
|
||||
}
|
||||
|
||||
abstract class KtVariableSymbol : KtVariableLikeSymbol() {
|
||||
abstract val isVal: Boolean
|
||||
|
||||
@@ -16,6 +16,8 @@ interface KtType : ValidityTokenOwner {
|
||||
fun isEqualTo(other: KtType): Boolean
|
||||
fun isSubTypeOf(superType: KtType): Boolean
|
||||
|
||||
val isBuiltInFunctionalType: Boolean
|
||||
|
||||
fun asStringForDebugging(): String
|
||||
}
|
||||
|
||||
|
||||
+6
-3
@@ -9,12 +9,13 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbolKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@@ -43,4 +44,6 @@ internal class KtFirConstructorValueParameterSymbol(
|
||||
else -> KtConstructorParameterSymbolKind.NON_PROPERTY
|
||||
}
|
||||
}
|
||||
|
||||
override val hasDefaultValue: Boolean get() = withValidityAssertion { fir.defaultValue != null }
|
||||
}
|
||||
+2
-2
@@ -9,13 +9,12 @@ import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionParameterSymbol
|
||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolKind
|
||||
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
|
||||
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
@@ -31,4 +30,5 @@ internal class KtFirFunctionValueParameterSymbol(
|
||||
override val isVararg: Boolean get() = withValidityAssertion { fir.isVararg }
|
||||
override val type: KtType by cached { builder.buildKtType(fir.returnTypeRef) }
|
||||
override val symbolKind: KtSymbolKind get() = KtSymbolKind.LOCAL
|
||||
override val hasDefaultValue: Boolean get() = withValidityAssertion { fir.defaultValue != null }
|
||||
}
|
||||
+3
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.idea.frontend.api.fir.types
|
||||
|
||||
import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
||||
@@ -45,6 +46,8 @@ internal interface KtFirType : KtType, ValidityTokenOwner {
|
||||
)
|
||||
}
|
||||
|
||||
override val isBuiltInFunctionalType: Boolean
|
||||
get() = coneType.isBuiltinFunctionalType(typeCheckerContext.session)
|
||||
}
|
||||
|
||||
internal class KtFirClassType(
|
||||
|
||||
Reference in New Issue
Block a user