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
|
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 class KtVariableSymbol : KtVariableLikeSymbol() {
|
||||||
abstract val isVal: Boolean
|
abstract val isVal: Boolean
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ interface KtType : ValidityTokenOwner {
|
|||||||
fun isEqualTo(other: KtType): Boolean
|
fun isEqualTo(other: KtType): Boolean
|
||||||
fun isSubTypeOf(superType: KtType): Boolean
|
fun isSubTypeOf(superType: KtType): Boolean
|
||||||
|
|
||||||
|
val isBuiltInFunctionalType: Boolean
|
||||||
|
|
||||||
fun asStringForDebugging(): String
|
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.fir.declarations.impl.FirValueParameterImpl
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
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.KtSymbolByFirBuilder
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
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.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.idea.frontend.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
@@ -43,4 +44,6 @@ internal class KtFirConstructorValueParameterSymbol(
|
|||||||
else -> KtConstructorParameterSymbolKind.NON_PROPERTY
|
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.fir.declarations.impl.FirValueParameterImpl
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityToken
|
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.KtSymbolByFirBuilder
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached
|
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.fir.utils.weakRef
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionParameterSymbol
|
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.symbols.KtSymbolKind
|
||||||
|
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
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
@@ -31,4 +30,5 @@ internal class KtFirFunctionValueParameterSymbol(
|
|||||||
override val isVararg: Boolean get() = withValidityAssertion { fir.isVararg }
|
override val isVararg: Boolean get() = withValidityAssertion { fir.isVararg }
|
||||||
override val type: KtType by cached { builder.buildKtType(fir.returnTypeRef) }
|
override val type: KtType by cached { builder.buildKtType(fir.returnTypeRef) }
|
||||||
override val symbolKind: KtSymbolKind get() = KtSymbolKind.LOCAL
|
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
|
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.*
|
||||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.*
|
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(
|
internal class KtFirClassType(
|
||||||
|
|||||||
Reference in New Issue
Block a user