FIR IDE: introduce symbol modality
This commit is contained in:
+2
-2
@@ -16,10 +16,10 @@ abstract class KtTypeAliasSymbol : KtClassLikeSymbol() {
|
|||||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
|
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.TOP_LEVEL
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KtClassOrObjectSymbol : KtClassLikeSymbol(), KtSymbolWithTypeParameters {
|
abstract class KtClassOrObjectSymbol : KtClassLikeSymbol(), KtSymbolWithTypeParameters, KtSymbolWithModality<KtSymbolModality> {
|
||||||
abstract val classKind: KtClassKind
|
abstract val classKind: KtClassKind
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class KtClassKind {
|
enum class KtClassKind {
|
||||||
CLASS, ABSTRACT_CLASS, ENUM_CLASS, ENUM_ENTRY, ANNOTATION_CLASS, OBJECT, COMPANION_OBJECT, INTERFACE
|
CLASS, ENUM_CLASS, ENUM_ENTRY, ANNOTATION_CLASS, OBJECT, COMPANION_OBJECT, INTERFACE
|
||||||
}
|
}
|
||||||
+6
-1
@@ -15,7 +15,12 @@ abstract class KtAnonymousFunctionSymbol : KtFunctionLikeSymbol() {
|
|||||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.LOCAL
|
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.LOCAL
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KtFunctionSymbol : KtFunctionLikeSymbol(), KtNamedSymbol, KtPossibleExtensionSymbol, KtSymbolWithTypeParameters {
|
abstract class KtFunctionSymbol : KtFunctionLikeSymbol(),
|
||||||
|
KtNamedSymbol,
|
||||||
|
KtPossibleExtensionSymbol,
|
||||||
|
KtSymbolWithTypeParameters,
|
||||||
|
KtSymbolWithModality<KtCommonSymbolModality> {
|
||||||
|
|
||||||
abstract val isSuspend: Boolean
|
abstract val isSuspend: Boolean
|
||||||
abstract val isOperator: Boolean
|
abstract val isOperator: Boolean
|
||||||
abstract val fqName: FqName?
|
abstract val fqName: FqName?
|
||||||
|
|||||||
+4
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.idea.frontend.api.symbols
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
abstract class KtSymbolProvider : ValidityOwner {
|
abstract class KtSymbolProvider : ValidityOwner {
|
||||||
@@ -38,4 +40,6 @@ abstract class KtSymbolProvider : ValidityOwner {
|
|||||||
* @return symbol with specified [classId] or `null` in case such symbol is not found
|
* @return symbol with specified [classId] or `null` in case such symbol is not found
|
||||||
*/
|
*/
|
||||||
abstract fun getClassOrObjectSymbolByClassId(classId: ClassId): KtClassOrObjectSymbol?
|
abstract fun getClassOrObjectSymbolByClassId(classId: ClassId): KtClassOrObjectSymbol?
|
||||||
|
|
||||||
|
abstract fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): Sequence<KtSymbol>
|
||||||
}
|
}
|
||||||
+2
-2
@@ -19,12 +19,12 @@ abstract class KtVariableSymbol : KtVariableLikeSymbol() {
|
|||||||
abstract val isVal: Boolean
|
abstract val isVal: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class KtFieldSymbol : KtVariableSymbol() {
|
abstract class KtFieldSymbol : KtVariableSymbol(), KtSymbolWithModality<KtCommonSymbolModality> {
|
||||||
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO getters & setters
|
// TODO getters & setters
|
||||||
abstract class KtPropertySymbol : KtVariableSymbol(), KtPossibleExtensionSymbol {
|
abstract class KtPropertySymbol : KtVariableSymbol(), KtPossibleExtensionSymbol, KtSymbolWithModality<KtCommonSymbolModality> {
|
||||||
abstract val fqName: FqName
|
abstract val fqName: FqName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,3 +32,17 @@ interface KtPossibleExtensionSymbol {
|
|||||||
interface KtSymbolWithTypeParameters {
|
interface KtSymbolWithTypeParameters {
|
||||||
val typeParameters: List<KtTypeParameterSymbol>
|
val typeParameters: List<KtTypeParameterSymbol>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface KtSymbolWithModality<M : KtSymbolModality> {
|
||||||
|
val modality: M
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class KtSymbolModality {
|
||||||
|
object SEALED : KtSymbolModality()
|
||||||
|
}
|
||||||
|
|
||||||
|
sealed class KtCommonSymbolModality : KtSymbolModality() {
|
||||||
|
object FINAL : KtCommonSymbolModality()
|
||||||
|
object ABSTRACT : KtCommonSymbolModality()
|
||||||
|
object OPEN : KtCommonSymbolModality()
|
||||||
|
}
|
||||||
|
|||||||
+5
-4
@@ -14,9 +14,7 @@ import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
|||||||
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.ReadOnlyWeakRef
|
import org.jetbrains.kotlin.idea.frontend.api.fir.utils.ReadOnlyWeakRef
|
||||||
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.symbols.KtClassKind
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassOrObjectSymbol
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolKind
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
@@ -31,6 +29,9 @@ internal class KtFirClassOrObjectSymbol(
|
|||||||
override val name: Name get() = withValidityAssertion { fir.classId.shortClassName }
|
override val name: Name get() = withValidityAssertion { fir.classId.shortClassName }
|
||||||
override val classId: ClassId get() = withValidityAssertion { fir.classId }
|
override val classId: ClassId get() = withValidityAssertion { fir.classId }
|
||||||
|
|
||||||
|
override val modality: KtSymbolModality
|
||||||
|
get() = withValidityAssertion { fir.modality.getSymbolModality() }
|
||||||
|
|
||||||
override val typeParameters by cached {
|
override val typeParameters by cached {
|
||||||
fir.typeParameters.map { typeParameter ->
|
fir.typeParameters.map { typeParameter ->
|
||||||
builder.buildTypeParameterSymbol(typeParameter.symbol.fir)
|
builder.buildTypeParameterSymbol(typeParameter.symbol.fir)
|
||||||
@@ -44,7 +45,7 @@ internal class KtFirClassOrObjectSymbol(
|
|||||||
ClassKind.ENUM_CLASS -> KtClassKind.ENUM_CLASS
|
ClassKind.ENUM_CLASS -> KtClassKind.ENUM_CLASS
|
||||||
ClassKind.ENUM_ENTRY -> KtClassKind.ENUM_ENTRY
|
ClassKind.ENUM_ENTRY -> KtClassKind.ENUM_ENTRY
|
||||||
ClassKind.ANNOTATION_CLASS -> KtClassKind.ANNOTATION_CLASS
|
ClassKind.ANNOTATION_CLASS -> KtClassKind.ANNOTATION_CLASS
|
||||||
ClassKind.CLASS -> if (fir.modality == Modality.ABSTRACT) KtClassKind.ABSTRACT_CLASS else KtClassKind.CLASS
|
ClassKind.CLASS -> KtClassKind.CLASS
|
||||||
ClassKind.OBJECT -> if (fir.isCompanion) KtClassKind.COMPANION_OBJECT else KtClassKind.OBJECT
|
ClassKind.OBJECT -> if (fir.isCompanion) KtClassKind.COMPANION_OBJECT else KtClassKind.OBJECT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
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.fir.declarations.modality
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
||||||
|
|||||||
+5
-1
@@ -7,12 +7,14 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirField
|
import org.jetbrains.kotlin.fir.declarations.FirField
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.modality
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
||||||
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.KtCommonSymbolModality
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFieldSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFieldSymbol
|
||||||
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
|
||||||
@@ -28,4 +30,6 @@ internal class KtFirFieldSymbol(
|
|||||||
override val type: KtType by cached { builder.buildKtType(fir.returnTypeRef) }
|
override val type: KtType by cached { builder.buildKtType(fir.returnTypeRef) }
|
||||||
override val isVal: Boolean get() = withValidityAssertion { fir.isVal }
|
override val isVal: Boolean get() = withValidityAssertion { fir.isVal }
|
||||||
override val name: Name get() = withValidityAssertion { fir.name }
|
override val name: Name get() = withValidityAssertion { fir.name }
|
||||||
|
|
||||||
|
override val modality: KtCommonSymbolModality get() = withValidityAssertion { fir.modality.getSymbolModality() }
|
||||||
}
|
}
|
||||||
+3
-4
@@ -6,17 +6,15 @@
|
|||||||
package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl
|
||||||
import org.jetbrains.kotlin.fir.declarations.isLocal
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.isOperator
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.isSuspend
|
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.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.KtCommonSymbolModality
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol
|
||||||
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.withValidityAssertion
|
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||||
@@ -56,4 +54,5 @@ internal class KtFirFunctionSymbol(
|
|||||||
else -> KtSymbolKind.MEMBER
|
else -> KtSymbolKind.MEMBER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override val modality: KtCommonSymbolModality get() = withValidityAssertion { fir.modality.getSymbolModality() }
|
||||||
}
|
}
|
||||||
+3
@@ -7,12 +7,14 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.modality
|
||||||
import org.jetbrains.kotlin.idea.fir.findPsi
|
import org.jetbrains.kotlin.idea.fir.findPsi
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
import org.jetbrains.kotlin.idea.frontend.api.ValidityOwner
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.KtType
|
import org.jetbrains.kotlin.idea.frontend.api.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.KtCommonSymbolModality
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol
|
||||||
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.withValidityAssertion
|
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||||
@@ -44,4 +46,5 @@ internal class KtFirPropertySymbol(
|
|||||||
else -> KtSymbolKind.MEMBER
|
else -> KtSymbolKind.MEMBER
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
override val modality: KtCommonSymbolModality get() = withValidityAssertion { fir.modality.getSymbolModality() }
|
||||||
}
|
}
|
||||||
+7
@@ -15,6 +15,8 @@ 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.*
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
internal class KtFirSymbolProvider(
|
internal class KtFirSymbolProvider(
|
||||||
@@ -68,4 +70,9 @@ internal class KtFirSymbolProvider(
|
|||||||
val symbol = firSymbolProvider.getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol ?: return null
|
val symbol = firSymbolProvider.getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol ?: return null
|
||||||
firSymbolBuilder.buildClassSymbol(symbol.fir)
|
firSymbolBuilder.buildClassSymbol(symbol.fir)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): Sequence<KtSymbol> {
|
||||||
|
val firs = firSymbolProvider.getTopLevelCallableSymbols(packageFqName, name)
|
||||||
|
return firs.asSequence().map { firSymbol -> firSymbolBuilder.buildSymbol(firSymbol.fir) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.frontend.api.fir.symbols
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtCommonSymbolModality
|
||||||
|
import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolModality
|
||||||
|
|
||||||
|
internal inline fun <reified M : KtSymbolModality> Modality?.getSymbolModality(): M = when (this) {
|
||||||
|
Modality.FINAL -> KtCommonSymbolModality.FINAL
|
||||||
|
Modality.OPEN -> KtCommonSymbolModality.OPEN
|
||||||
|
Modality.ABSTRACT -> KtCommonSymbolModality.ABSTRACT
|
||||||
|
Modality.SEALED -> KtSymbolModality.SEALED
|
||||||
|
null -> error("Symbol modality should not be null, looks like the fir symbol was not properly resolved")
|
||||||
|
} as? M ?: error("Sealed modality can only be applied to class")
|
||||||
@@ -6,6 +6,7 @@ class A {
|
|||||||
KtFirClassOrObjectSymbol:
|
KtFirClassOrObjectSymbol:
|
||||||
classId: A
|
classId: A
|
||||||
classKind: CLASS
|
classKind: CLASS
|
||||||
|
modality: FINAL
|
||||||
name: A
|
name: A
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ KtFirPropertySymbol:
|
|||||||
fqName: A.a
|
fqName: A.a
|
||||||
isExtension: false
|
isExtension: false
|
||||||
isVal: true
|
isVal: true
|
||||||
|
modality: FINAL
|
||||||
name: a
|
name: a
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
receiverType: kotlin/Int
|
receiverType: kotlin/Int
|
||||||
@@ -20,6 +21,7 @@ KtFirFunctionSymbol:
|
|||||||
isExtension: false
|
isExtension: false
|
||||||
isOperator: false
|
isOperator: false
|
||||||
isSuspend: false
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
name: x
|
name: x
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: MEMBER
|
symbolKind: MEMBER
|
||||||
@@ -30,6 +32,7 @@ KtFirFunctionSymbol:
|
|||||||
KtFirClassOrObjectSymbol:
|
KtFirClassOrObjectSymbol:
|
||||||
classId: A
|
classId: A
|
||||||
classKind: CLASS
|
classKind: CLASS
|
||||||
|
modality: FINAL
|
||||||
name: A
|
name: A
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ KtFirTypeParameterSymbol:
|
|||||||
KtFirClassOrObjectSymbol:
|
KtFirClassOrObjectSymbol:
|
||||||
classId: A
|
classId: A
|
||||||
classKind: CLASS
|
classKind: CLASS
|
||||||
|
modality: FINAL
|
||||||
name: A
|
name: A
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ KtFirFunctionSymbol:
|
|||||||
isExtension: true
|
isExtension: true
|
||||||
isOperator: false
|
isOperator: false
|
||||||
isSuspend: false
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
name: foo
|
name: foo
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
receiverType: kotlin/String
|
receiverType: kotlin/String
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ KtFirFunctionSymbol:
|
|||||||
isExtension: false
|
isExtension: false
|
||||||
isOperator: false
|
isOperator: false
|
||||||
isSuspend: false
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
name: foo
|
name: foo
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ KtFirFunctionSymbol:
|
|||||||
isExtension: false
|
isExtension: false
|
||||||
isOperator: false
|
isOperator: false
|
||||||
isSuspend: false
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
name: foo
|
name: foo
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ KtFirFunctionSymbol:
|
|||||||
isExtension: false
|
isExtension: false
|
||||||
isOperator: false
|
isOperator: false
|
||||||
isSuspend: false
|
isSuspend: false
|
||||||
|
modality: FINAL
|
||||||
name: foo
|
name: foo
|
||||||
origin: SOURCE
|
origin: SOURCE
|
||||||
symbolKind: TOP_LEVEL
|
symbolKind: TOP_LEVEL
|
||||||
|
|||||||
Reference in New Issue
Block a user