FIR IDE: implement completion for infix functions

This commit is contained in:
Ilya Kirillov
2021-06-07 20:10:18 +02:00
committed by teamcityserver
parent 2ffc7ad0a0
commit ae9ac33f0f
31 changed files with 232 additions and 24 deletions
@@ -1,3 +1,4 @@
// FIR_COMPARISON
class C {
fun foo(p: Int){}
infix fun bar(p: Int) {}
@@ -79,6 +79,7 @@ private object KotlinFirCompletionProvider : CompletionProvider<CompletionParame
) {
val keywordContributor = FirKeywordCompletionContributor(basicContext)
val callableContributor = FirCallableCompletionContributor(basicContext)
val infixCallableContributor = FirInfixCallableCompletionContributor(basicContext)
val callableReferenceContributor = FirCallableReferenceCompletionContributor(basicContext)
val classifierContributor = FirClassifierCompletionContributor(basicContext)
val classifierReferenceContributor = FirClassifierReferenceCompletionContributor(basicContext)
@@ -144,6 +145,11 @@ private object KotlinFirCompletionProvider : CompletionProvider<CompletionParame
complete(classifierReferenceContributor, positionContext)
}
is FirInfixCallPositionContext -> {
complete(keywordContributor, positionContext)
complete(infixCallableContributor, positionContext)
}
is FirIncorrectPositionContext -> {
// do nothing, completion is not suposed to be called here
}
@@ -87,6 +87,13 @@ internal class FirExpressionNameReferencePositionContext(
override val explicitReceiver: KtExpression?
) : FirNameReferencePositionContext()
internal class FirInfixCallPositionContext(
override val position: PsiElement,
override val reference: KtSimpleNameReference,
override val nameExpression: KtSimpleNameExpression,
override val explicitReceiver: KtExpression?
) : FirNameReferencePositionContext()
internal class FirWithSubjectEntryPositionContext(
override val position: PsiElement,
@@ -171,6 +178,11 @@ internal object FirPositionCompletionContextDetector {
position,
position.parentOfType()!!,
)
parent is KtBinaryExpression && parent.operationReference == nameExpression -> {
FirInfixCallPositionContext(
position, reference, nameExpression, explicitReceiver
)
}
else -> {
FirExpressionNameReferencePositionContext(position, reference, nameExpression, explicitReceiver)
}
@@ -9,15 +9,14 @@ import org.jetbrains.kotlin.idea.completion.checkers.CompletionVisibilityChecker
import org.jetbrains.kotlin.idea.completion.checkers.ExtensionApplicabilityChecker
import org.jetbrains.kotlin.idea.completion.context.FirBasicCompletionContext
import org.jetbrains.kotlin.idea.completion.context.FirNameReferencePositionContext
import org.jetbrains.kotlin.idea.completion.contributors.helpers.insertSymbolAndInvokeCompletion
import org.jetbrains.kotlin.idea.completion.lookups.CallableInsertionStrategy
import org.jetbrains.kotlin.idea.completion.lookups.ImportStrategy
import org.jetbrains.kotlin.idea.fir.HLIndexHelper
import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession
import org.jetbrains.kotlin.idea.frontend.api.components.KtScopeContext
import org.jetbrains.kotlin.idea.frontend.api.scopes.KtCompositeScope
import org.jetbrains.kotlin.idea.frontend.api.scopes.KtScope
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithVisibility
import org.jetbrains.kotlin.idea.frontend.api.types.KtClassType
import org.jetbrains.kotlin.idea.frontend.api.types.KtNonErrorClassType
import org.jetbrains.kotlin.idea.frontend.api.types.KtType
@@ -28,7 +27,9 @@ internal open class FirCallableCompletionContributor(
) : FirContextCompletionContributorBase<FirNameReferencePositionContext>(basicContext) {
private val typeNamesProvider = TypeNamesProvider(indexHelper)
protected open val insertionStrategy: CallableInsertionStrategy = CallableInsertionStrategy.AS_CALL
protected open val insertionStrategy: CallableInsertionStrategy = CallableInsertionStrategy.AsCall
protected open fun KtAnalysisSession.filter(symbol: KtCallableSymbol): Boolean = true
private val shouldCompleteTopLevelCallablesFromIndex: Boolean
get() = prefixMatcher.prefix.isNotEmpty()
@@ -115,6 +116,7 @@ internal open class FirCallableCompletionContributor(
.getCallableSymbols(scopeNameFilter)
.filterNot { it.isExtension }
.filter { with(visibilityChecker) { isVisible(it) } }
.filter { filter(it) }
.forEach { callable ->
addCallableSymbolToCompletion(expectedType, callable, insertionStrategy = insertionStrategy)
}
@@ -133,10 +135,16 @@ internal open class FirCallableCompletionContributor(
val nonExtensionMembers = collectNonExtensions(possibleReceiverScope, visibilityChecker)
val extensionNonMembers = collectSuitableExtensions(implicitScopes, extensionChecker, visibilityChecker)
nonExtensionMembers.forEach { addCallableSymbolToCompletion(expectedType, it, insertionStrategy = insertionStrategy) }
extensionNonMembers.forEach { addCallableSymbolToCompletion(expectedType, it, insertionStrategy = insertionStrategy) }
nonExtensionMembers
.filter { filter(it) }
.forEach { addCallableSymbolToCompletion(expectedType, it, insertionStrategy = insertionStrategy) }
extensionNonMembers
.filter { filter(it) }
.forEach { addCallableSymbolToCompletion(expectedType, it, insertionStrategy = insertionStrategy) }
collectTopLevelExtensionsFromIndices(listOf(typeOfPossibleReceiver), extensionChecker, visibilityChecker)
.filter { filter(it) }
.forEach { addCallableSymbolToCompletion(expectedType, it, insertionStrategy = insertionStrategy) }
}
@@ -150,6 +158,7 @@ internal open class FirCallableCompletionContributor(
return topLevelExtensions.asSequence()
.map { it.getSymbol() as KtCallableSymbol }
.filter { filter(it) }
.filter { with(visibilityChecker) { isVisible(it) } }
.filter { with(extensionChecker) { isApplicable(it) } }
}
@@ -157,6 +166,7 @@ internal open class FirCallableCompletionContributor(
private fun KtAnalysisSession.collectNonExtensions(scope: KtScope, visibilityChecker: CompletionVisibilityChecker) =
scope.getCallableSymbols(scopeNameFilter)
.filterNot { it.isExtension }
.filter { filter(it) }
.filter { with(visibilityChecker) { isVisible(it) } }
private fun KtAnalysisSession.collectSuitableExtensions(
@@ -167,6 +177,7 @@ internal open class FirCallableCompletionContributor(
scope.getCallableSymbols(scopeNameFilter)
.filter { it.isExtension }
.filter { with(visibilityChecker) { isVisible(it) } }
.filter { filter(it) }
.filter { with(hasSuitableExtensionReceiver) { isApplicable(it) } }
private fun KtAnalysisSession.findAllNamesOfTypes(implicitReceiversTypes: List<KtType>) =
@@ -176,7 +187,7 @@ internal open class FirCallableCompletionContributor(
internal class FirCallableReferenceCompletionContributor(
basicContext: FirBasicCompletionContext
) : FirCallableCompletionContributor(basicContext) {
override val insertionStrategy: CallableInsertionStrategy = CallableInsertionStrategy.AS_IDENTIFIER
override val insertionStrategy: CallableInsertionStrategy = CallableInsertionStrategy.AsIdentifier
override fun KtAnalysisSession.collectDotCompletion(
implicitScopes: KtCompositeScope,
@@ -203,6 +214,18 @@ internal class FirCallableReferenceCompletionContributor(
}
}
internal class FirInfixCallableCompletionContributor(
basicContext: FirBasicCompletionContext
) : FirCallableCompletionContributor(basicContext) {
override val insertionStrategy: CallableInsertionStrategy = CallableInsertionStrategy.AsIdentifierCustom {
insertSymbolAndInvokeCompletion(" ")
}
override fun KtAnalysisSession.filter(symbol: KtCallableSymbol): Boolean {
return symbol is KtFunctionSymbol && symbol.isInfix
}
}
private class TypeNamesProvider(private val indexHelper: HLIndexHelper) {
fun KtAnalysisSession.findAllNames(type: KtType): Set<String> {
if (type !is KtNonErrorClassType) return emptySet()
@@ -32,7 +32,7 @@ internal class FirImportDirectivePackageMembersCompletionContributor(
expectedType = null,
it,
importingStrategy = ImportStrategy.DoNothing,
insertionStrategy = CallableInsertionStrategy.AS_IDENTIFIER
insertionStrategy = CallableInsertionStrategy.AsIdentifier
)
}
}
@@ -5,7 +5,10 @@
package org.jetbrains.kotlin.idea.completion.lookups
internal enum class CallableInsertionStrategy {
AS_CALL,
AS_IDENTIFIER
import com.intellij.codeInsight.completion.InsertionContext
internal sealed class CallableInsertionStrategy {
object AsCall : CallableInsertionStrategy()
object AsIdentifier : CallableInsertionStrategy()
class AsIdentifierCustom(val insertionHandlerAction: InsertionContext.() -> Unit) : CallableInsertionStrategy()
}
@@ -49,8 +49,14 @@ internal class FunctionLookupElementFactory {
)
val insertionHandler = when (insertionStrategy) {
CallableInsertionStrategy.AS_CALL -> FunctionInsertionHandler
CallableInsertionStrategy.AS_IDENTIFIER -> QuotedNamesAwareInsertionHandler()
CallableInsertionStrategy.AsCall -> FunctionInsertionHandler
CallableInsertionStrategy.AsIdentifier -> QuotedNamesAwareInsertionHandler()
is CallableInsertionStrategy.AsIdentifierCustom -> object : QuotedNamesAwareInsertionHandler() {
override fun handleInsert(context: InsertionContext, item: LookupElement) {
super.handleInsert(context, item)
insertionStrategy.insertionHandlerAction(context)
}
}
}
return LookupElementBuilder.create(lookupObject, symbol.name.asString())
@@ -27,7 +27,7 @@ internal class KotlinFirLookupElementFactory {
is KtCallableSymbol -> createCallableLookupElement(
symbol,
importingStrategy = detectImportStrategy(symbol),
CallableInsertionStrategy.AS_CALL
CallableInsertionStrategy.AsCall
)
is KtClassLikeSymbol -> with(classLookupElementFactory) { createLookup(symbol) }
is KtTypeParameterSymbol -> with(typeParameterLookupElementFactory) { createLookup(symbol) }
@@ -47,17 +47,6 @@ interface KtScope : ValidityTokenOwner {
}
}
/**
* Return a sequence of all [KtSymbol] which current scope contain if declaration name matches [nameFilter]
* Constructors are not included here as they have no name
*/
fun getAllNamedSymbols(nameFilter: KtScopeNameFilter = { true }): Sequence<KtSymbol> = withValidityAssertion {
sequence {
yieldAll(getCallableSymbols(nameFilter))
yieldAll(getClassifierSymbols(nameFilter))
}
}
/**
* Return a sequence of [KtCallableSymbol] which current scope contain if declaration name matches [nameFilter]
*/
@@ -37,6 +37,7 @@ abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
abstract val isExternal: Boolean
abstract val isInline: Boolean
abstract val isOverride: Boolean
abstract val isInfix: Boolean
abstract override fun createPointer(): KtSymbolPointer<KtFunctionSymbol>
}
@@ -68,6 +68,7 @@ internal class KtFirFunctionSymbol(
override val isSuspend: Boolean get() = firRef.withFir { it.isSuspend }
override val isOverride: Boolean get() = firRef.withFir { it.isOverride }
override val isInfix: Boolean get() = firRef.withFir { it.isInfix }
override val dispatchType: KtType? by cached {
firRef.dispatchReceiverTypeAndAnnotations(builder)
@@ -16,6 +16,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -13,6 +13,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -34,6 +35,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -55,6 +57,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -76,6 +79,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -97,6 +101,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -118,6 +123,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -139,6 +145,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -160,6 +167,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -181,6 +189,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -202,6 +211,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -223,6 +233,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -244,6 +255,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -265,6 +277,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -286,6 +299,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -307,6 +321,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -328,6 +343,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -349,6 +365,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -370,6 +387,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -391,6 +409,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -412,6 +431,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -433,6 +453,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -454,6 +475,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -475,6 +497,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -496,6 +519,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -517,6 +541,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -538,6 +563,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -559,6 +585,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -580,6 +607,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -601,6 +629,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -622,6 +651,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -643,6 +673,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -664,6 +695,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -685,6 +717,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -706,6 +739,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -727,6 +761,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -748,6 +783,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -769,6 +805,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -790,6 +827,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -811,6 +849,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -832,6 +871,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -853,6 +893,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -874,6 +915,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -895,6 +937,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -916,6 +959,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -937,6 +981,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -958,6 +1003,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -979,6 +1025,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -1000,6 +1047,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1021,6 +1069,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1042,6 +1091,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1063,6 +1113,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1084,6 +1135,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1105,6 +1157,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1126,6 +1179,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1147,6 +1201,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -1168,6 +1223,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -1189,6 +1245,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -1210,6 +1267,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Int
isExtension: false
isExternal: false
isInfix: true
isInline: false
isOperator: false
isOverride: false
@@ -1231,6 +1289,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -1252,6 +1311,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1273,6 +1333,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -10,6 +10,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -31,6 +32,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -52,6 +54,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -73,6 +76,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -94,6 +98,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -115,6 +120,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -136,6 +142,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -157,6 +164,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -178,6 +186,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -199,6 +208,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -220,6 +230,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -241,6 +252,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -262,6 +274,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -283,6 +296,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -304,6 +318,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -325,6 +340,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -346,6 +362,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -367,6 +384,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/List<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -388,6 +406,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -409,6 +428,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/MutableList<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -454,6 +474,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -475,6 +496,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -496,6 +518,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -36,6 +36,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -93,6 +94,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -114,6 +116,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -135,6 +138,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -156,6 +160,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -177,6 +182,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -198,6 +204,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -219,6 +226,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -240,6 +248,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -261,6 +270,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -282,6 +292,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -303,6 +314,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -324,6 +336,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -345,6 +358,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -366,6 +380,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -387,6 +402,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -408,6 +424,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -429,6 +446,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -450,6 +468,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -471,6 +490,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -492,6 +512,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -513,6 +534,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -534,6 +556,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -555,6 +578,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -576,6 +600,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -597,6 +622,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -618,6 +644,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -639,6 +666,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -660,6 +688,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -681,6 +710,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -702,6 +732,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -723,6 +754,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -744,6 +776,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -765,6 +798,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -786,6 +820,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -807,6 +842,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -828,6 +864,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -849,6 +886,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -870,6 +908,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -891,6 +930,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -912,6 +952,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -933,6 +974,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -954,6 +996,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -975,6 +1018,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -996,6 +1040,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1017,6 +1062,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1038,6 +1084,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1059,6 +1106,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1080,6 +1128,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1101,6 +1150,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1122,6 +1172,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1143,6 +1194,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1164,6 +1216,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1185,6 +1238,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1206,6 +1260,7 @@ KtFirFunctionSymbol:
dispatchType: java/lang/String
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -1227,6 +1282,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/CharSequence
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -12,6 +12,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Function2<P1, P2, R>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -33,6 +34,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -54,6 +56,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -75,6 +78,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/Any
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -12,6 +12,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -33,6 +34,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: true
isOperator: false
isOverride: false
@@ -54,6 +56,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -10,6 +10,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/List<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: true
isOverride: false
@@ -10,6 +10,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/List<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -31,6 +32,7 @@ KtFirFunctionSymbol:
dispatchType: kotlin/collections/List<E>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -79,6 +79,7 @@ KtFirFunctionSymbol:
dispatchType: X
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -17,6 +17,7 @@ KtFirFunctionSymbol:
dispatchType: <anonymous>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: true
@@ -37,6 +37,7 @@ KtFirFunctionSymbol:
dispatchType: A
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -10,6 +10,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: true
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -23,6 +23,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -30,6 +30,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -10,6 +10,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -25,6 +25,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -65,6 +66,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -13,6 +13,7 @@ KtFirFunctionSymbol:
dispatchType: A
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -34,6 +35,7 @@ KtFirFunctionSymbol:
dispatchType: A
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -164,6 +164,7 @@ KtFirFunctionSymbol:
dispatchType: X<T>
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -11,6 +11,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -32,6 +33,7 @@ KtFirFunctionSymbol:
dispatchType: null
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
@@ -132,6 +132,7 @@ KtFirFunctionSymbol:
dispatchType: X
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false