diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmTypeMapper.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmTypeMapper.kt index c1690f7fdec..b20b8e16389 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmTypeMapper.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmTypeMapper.kt @@ -5,9 +5,9 @@ package org.jetbrains.kotlin.fir.backend.jvm +import org.jetbrains.kotlin.codegen.signature.JvmSignatureWriter import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.FirSessionComponent +import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.inference.isKClassType @@ -17,11 +17,11 @@ import org.jetbrains.kotlin.fir.symbols.ConeClassifierLookupTag import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.symbols.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol -import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.load.kotlin.JvmDescriptorTypeWriter import org.jetbrains.kotlin.load.kotlin.TypeMappingMode +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.AbstractTypeMapper import org.jetbrains.kotlin.types.TypeMappingContext import org.jetbrains.kotlin.types.TypeSystemCommonBackendContext @@ -35,8 +35,8 @@ import org.jetbrains.org.objectweb.asm.Type class FirJvmTypeMapper(val session: FirSession) : TypeMappingContext>, FirSessionComponent { override val typeContext = ConeTypeSystemCommonBackendContextForTypeMapping(session.typeContext) - fun mapType(type: ConeKotlinType, mode: TypeMappingMode = TypeMappingMode.DEFAULT): Type { - return AbstractTypeMapper.mapType(this, type, mode) + fun mapType(type: ConeKotlinType, mode: TypeMappingMode = TypeMappingMode.DEFAULT, sw: JvmDescriptorTypeWriter? = null): Type { + return AbstractTypeMapper.mapType(this, type, mode, sw) } override fun getClassInternalName(typeConstructor: TypeConstructorMarker): String { @@ -45,7 +45,8 @@ class FirJvmTypeMapper(val session: FirSession) : TypeMappingContext.writeGenericType(type: SimpleTypeMarker, asmType: Type, mode: TypeMappingMode) { - error("Should not be called") + //TODO Make correct implementation + (this as JvmSignatureWriter).writeAsmType(asmType) } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt index f2f7e82b657..0f32bf94638 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt @@ -31,7 +31,10 @@ fun ConeClassLikeType.isLong(): Boolean = lookupTag.classId == StandardClassIds. fun ConeClassLikeType.isInt(): Boolean = lookupTag.classId == StandardClassIds.Int fun ConeClassLikeType.isShort(): Boolean = lookupTag.classId == StandardClassIds.Short fun ConeClassLikeType.isByte(): Boolean = lookupTag.classId == StandardClassIds.Byte +fun ConeClassLikeType.isBoolean(): Boolean = lookupTag.classId == StandardClassIds.Boolean +fun ConeClassLikeType.isChar(): Boolean = lookupTag.classId == StandardClassIds.Char +fun ConeClassLikeType.isPrimitiveType(): Boolean = isPrimitiveNumberOrUnsignedNumberType() || isBoolean() || isByte() || isShort() fun ConeClassLikeType.isPrimitiveNumberType(): Boolean = lookupTag.classId in PRIMITIVE_NUMBER_CLASS_IDS fun ConeClassLikeType.isPrimitiveUnsignedNumberType(): Boolean = lookupTag.classId in PRIMITIVE_UNSIGNED_NUMBER_CLASS_IDS fun ConeClassLikeType.isPrimitiveNumberOrUnsignedNumberType(): Boolean = isPrimitiveNumberType() || isPrimitiveUnsignedNumberType() diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt index 51e701bfa3e..3c88cbcb3e6 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/DebugSymbolRenderer.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.idea.frontend.api.symbols -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName @@ -35,6 +35,7 @@ object DebugSymbolRenderer { null -> "null" is String -> value is Boolean -> value.toString() + is Long -> value.toString() is Name -> value.asString() is FqName -> value.asString() is ClassId -> value.asString() @@ -51,10 +52,17 @@ object DebugSymbolRenderer { is KtFunctionSymbol -> renderValue(value.callableIdIfNonLocal ?: "/${value.name}") is KtConstructorSymbol -> "" is KtNamedSymbol -> renderValue(value.name) + is KtPropertyGetterSymbol -> "" + is KtPropertySetterSymbol -> "" else -> TODO(value::class.toString()) } "${value::class.simpleName!!}($symbolTag)" } + is KtSimpleConstantValue<*> -> renderValue(value.constant) + is KtNamedConstantValue -> "${renderValue(value.name)} = ${renderValue(value.expression)}" + is KtAnnotationCall -> + "${renderValue(value.classId)}${value.arguments.joinToString(prefix = "(", postfix = ")") { renderValue(it) }}" + else -> value::class.simpleName!! } diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt index 4ee0f723d84..6b047a67edc 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtClassLikeSymbol.kt @@ -7,6 +7,8 @@ package org.jetbrains.kotlin.idea.frontend.api.symbols import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer +import org.jetbrains.kotlin.idea.frontend.api.types.KtClassType +import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.name.ClassId sealed class KtClassifierSymbol : KtSymbol, KtNamedSymbol @@ -31,9 +33,19 @@ abstract class KtTypeAliasSymbol : KtClassLikeSymbol() { abstract class KtClassOrObjectSymbol : KtClassLikeSymbol(), KtSymbolWithTypeParameters, - KtSymbolWithModality { + KtSymbolWithModality, + KtSymbolWithVisibility, + KtAnnotatedSymbol { abstract val classKind: KtClassKind + abstract val isInner: Boolean + + abstract val companionObject: KtClassOrObjectSymbol? + + abstract val superTypes: List + + abstract val primaryConstructor: KtConstructorSymbol? + abstract override fun createPointer(): KtSymbolPointer } diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtFunctionLikeSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtFunctionLikeSymbol.kt index e2417cfd755..f5ebf6e4f90 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtFunctionLikeSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtFunctionLikeSymbol.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName -sealed class KtFunctionLikeSymbol : KtCallableSymbol(), KtTypedSymbol, KtSymbolWithKind { +abstract class KtFunctionLikeSymbol : KtCallableSymbol(), KtTypedSymbol, KtSymbolWithKind { abstract val valueParameters: List abstract override fun createPointer(): KtSymbolPointer @@ -26,18 +26,23 @@ abstract class KtFunctionSymbol : KtFunctionLikeSymbol(), KtNamedSymbol, KtPossibleExtensionSymbol, KtSymbolWithTypeParameters, - KtSymbolWithModality { + KtSymbolWithModality, + KtSymbolWithVisibility, + KtAnnotatedSymbol { abstract val callableIdIfNonLocal: FqName? abstract val isSuspend: Boolean abstract val isOperator: Boolean + abstract val isExternal: Boolean + abstract val isInline: Boolean + abstract val isOverride: Boolean abstract override val valueParameters: List abstract override fun createPointer(): KtSymbolPointer } -abstract class KtConstructorSymbol : KtFunctionLikeSymbol() { +abstract class KtConstructorSymbol : KtFunctionLikeSymbol(), KtAnnotatedSymbol, KtSymbolWithVisibility { abstract val isPrimary: Boolean abstract val containingClassIdIfNonLocal: ClassId? diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt index c8e767fb74a..e902aaf6b0b 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt @@ -5,14 +5,17 @@ package org.jetbrains.kotlin.idea.frontend.api.symbols -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithModality -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypedSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer -sealed class KtPropertyAccessorSymbol : KtSymbol, - KtSymbolWithModality { +sealed class KtPropertyAccessorSymbol : KtCallableSymbol(), + KtSymbolWithModality, + KtSymbolWithVisibility { abstract val isDefault: Boolean + abstract val isInline: Boolean + abstract val isOverride: Boolean + + abstract val symbolKind: KtSymbolKind abstract override fun createPointer(): KtSymbolPointer } diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt index 33971386ef6..bed3b085f86 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt @@ -27,7 +27,11 @@ sealed class KtVariableSymbol : KtVariableLikeSymbol() { abstract override fun createPointer(): KtSymbolPointer } -abstract class KtJavaFieldSymbol : KtVariableSymbol(), KtSymbolWithModality, KtSymbolWithKind { +abstract class KtJavaFieldSymbol : + KtVariableSymbol(), + KtSymbolWithModality, + KtSymbolWithVisibility, + KtSymbolWithKind { final override val symbolKind: KtSymbolKind get() = KtSymbolKind.MEMBER abstract val callableIdIfNonLocal: FqName? @@ -35,14 +39,24 @@ abstract class KtJavaFieldSymbol : KtVariableSymbol(), KtSymbolWithModality } -// TODO getters & setters abstract class KtPropertySymbol : KtVariableSymbol(), KtPossibleExtensionSymbol, KtSymbolWithModality, + KtSymbolWithVisibility, + KtAnnotatedSymbol, KtSymbolWithKind { abstract val callableIdIfNonLocal: FqName? + abstract val getter: KtPropertyGetterSymbol? + abstract val setter: KtPropertySetterSymbol? + + abstract val hasBackingField: Boolean + + abstract val isConst: Boolean + + abstract val isOverride: Boolean + abstract override fun createPointer(): KtSymbolPointer } @@ -50,15 +64,15 @@ abstract class KtLocalVariableSymbol : KtVariableSymbol(), KtSymbolWithKind { abstract override fun createPointer(): KtSymbolPointer } -sealed class KtParameterSymbol : KtVariableLikeSymbol(), KtSymbolWithKind { +sealed class KtParameterSymbol : KtVariableLikeSymbol(), KtSymbolWithKind, KtAnnotatedSymbol { abstract val hasDefaultValue: Boolean + abstract val isVararg: Boolean + abstract override fun createPointer(): KtSymbolPointer } abstract class KtFunctionParameterSymbol : KtParameterSymbol() { - abstract val isVararg: Boolean - final override val symbolKind: KtSymbolKind get() = KtSymbolKind.NON_PROPERTY_PARAMETER abstract override fun createPointer(): KtSymbolPointer diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtAnnotatedSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtAnnotatedSymbol.kt new file mode 100644 index 00000000000..91cf77a23e7 --- /dev/null +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtAnnotatedSymbol.kt @@ -0,0 +1,28 @@ +/* + * 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.symbols.markers + +import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.psi.KtCallElement + +abstract class KtAnnotationCall { + abstract val classId: ClassId? + abstract val useSiteTarget: AnnotationUseSiteTarget? + abstract val psi: KtCallElement? + abstract val arguments: List +} + +sealed class KtConstantValue +object KtUnsupportedConstantValue : KtConstantValue() + +data class KtSimpleConstantValue(val constant: T) : KtConstantValue() +data class KtNamedConstantValue(val name: String, val expression: KtConstantValue) + +interface KtAnnotatedSymbol : KtSymbol { + val annotations: List +} \ No newline at end of file diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithModality.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithModality.kt index d5bb69781fd..abba9a00adc 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithModality.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithModality.kt @@ -17,4 +17,4 @@ sealed class KtCommonSymbolModality : KtSymbolModality() { object FINAL : KtCommonSymbolModality() object ABSTRACT : KtCommonSymbolModality() object OPEN : KtCommonSymbolModality() -} +} \ No newline at end of file diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithVisibility.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithVisibility.kt new file mode 100644 index 00000000000..30490f62875 --- /dev/null +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/markers/KtSymbolWithVisibility.kt @@ -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.symbols.markers + +interface KtSymbolWithVisibility { + val visibility: KtSymbolVisibility +} + +sealed class KtSymbolVisibility { + object PUBLIC : KtSymbolVisibility() + object PRIVATE : KtSymbolVisibility() + object PROTECTED : KtSymbolVisibility() + object INTERNAL : KtSymbolVisibility() + object UNKNOWN : KtSymbolVisibility() +} \ No newline at end of file diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/types/KtType.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/types/KtType.kt index 8adbee05673..fdcb0f6c7f6 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/types/KtType.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/types/KtType.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.frontend.api.types +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.idea.frontend.api.KtTypeArgument import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner import org.jetbrains.kotlin.idea.frontend.api.symbols.KtClassLikeSymbol diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt index f2cc0ce4636..7d6986ef141 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/sessions/FirIdeSessionFactory.kt @@ -171,6 +171,7 @@ internal object FirIdeSessionFactory { } ) ) + register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) } } @@ -190,6 +191,7 @@ internal object FirIdeSessionFactory { ) ) ) + register(FirJvmTypeMapper::class, FirJvmTypeMapper(this)) } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt index d83ad5edc2f..28d2d106bfb 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt @@ -10,6 +10,7 @@ import com.intellij.openapi.project.Project import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.resolve.firSymbolProvider import org.jetbrains.kotlin.fir.resolve.getSymbolByLookupTag import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnnotationCall.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnnotationCall.kt new file mode 100644 index 00000000000..4072b9f8687 --- /dev/null +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirAnnotationCall.kt @@ -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.annotations.AnnotationUseSiteTarget +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* +import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.psi.KtCallElement + +class KtFirAnnotationCall( + override val classId: ClassId, + override val useSiteTarget: AnnotationUseSiteTarget?, + override val psi: KtCallElement?, + override val arguments: List +) : KtAnnotationCall() \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt index 519c94de50e..a197a918578 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirClassOrObjectSymbol.kt @@ -13,13 +13,17 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirClassOrObjectInLibrarySymbol +import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.* +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolModality +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer +import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name @@ -39,6 +43,24 @@ internal class KtFirClassOrObjectSymbol( override val modality: KtSymbolModality get() = getModality() + override val visibility: KtSymbolVisibility get() = getVisibility() + + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + + override val isInner: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isInner } + + override val companionObject: KtClassOrObjectSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { fir -> + fir.companionObject?.let { builder.buildClassSymbol(it) } + } + + override val superTypes: List by firRef.withFirAndCache(FirResolvePhase.SUPER_TYPES) { fir -> + fir.superConeTypes.map { + builder.buildKtType(it) + } + } + override val typeParameters by firRef.withFirAndCache { fir.typeParameters.map { typeParameter -> builder.buildTypeParameterSymbol(typeParameter.symbol.fir) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt index 57dc27adc99..85d45402697 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorSymbol.kt @@ -16,10 +16,13 @@ import org.jetbrains.kotlin.idea.frontend.api.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirConstructorSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature +import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtConstructorSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer @@ -44,6 +47,12 @@ internal class KtFirConstructorSymbol( } } + override val visibility: KtSymbolVisibility get() = getVisibility() + + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override val containingClassIdIfNonLocal: ClassId? get() = firRef.withFir { fir -> fir.containingClass()?.classId /* TODO check if local */ } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt index a0e7f05db5e..adb1a91d205 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirConstructorValueParameterSymbol.kt @@ -13,8 +13,10 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken 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.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.* +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer @@ -39,6 +41,10 @@ internal class KtFirConstructorValueParameterSymbol( } } + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override val constructorParameterKind: KtConstructorParameterSymbolKind get() = firRef.withFir { fir -> when { @@ -50,6 +56,8 @@ internal class KtFirConstructorValueParameterSymbol( override val hasDefaultValue: Boolean get() = firRef.withFir { it.defaultValue != null } + override val isVararg: Boolean get() = firRef.withFir { it.isVararg } + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Creating symbols for library constructor parameters is not supported yet") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt index 897fb72a6b9..eb8a8af7429 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionSymbol.kt @@ -15,10 +15,13 @@ import org.jetbrains.kotlin.idea.frontend.api.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirMemberFunctionSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature +import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer @@ -48,9 +51,16 @@ internal class KtFirFunctionSymbol( } } + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override val isSuspend: Boolean get() = firRef.withFir { it.isSuspend } + override val isOverride: Boolean get() = firRef.withFir { it.isOverride } override val receiverType: KtType? by firRef.withFirAndCache(FirResolvePhase.TYPES) { fir -> fir.receiverTypeRef?.let(builder::buildKtType) } override val isOperator: Boolean get() = firRef.withFir { it.isOperator } + override val isExternal: Boolean get() = firRef.withFir { it.isExternal } + override val isInline: Boolean get() = firRef.withFir { it.isInline } override val isExtension: Boolean get() = firRef.withFir { it.receiverTypeRef != null } override val callableIdIfNonLocal: FqName? get() = firRef.withFir { fir -> @@ -66,6 +76,8 @@ internal class KtFirFunctionSymbol( } override val modality: KtCommonSymbolModality get() = getModality() + override val visibility: KtSymbolVisibility get() = getVisibility() + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } return when (symbolKind) { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt index ef48c72d736..b85dbee8886 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirFunctionValueParameterSymbol.kt @@ -13,8 +13,10 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken 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.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionParameterSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.name.Name @@ -34,6 +36,10 @@ internal class KtFirFunctionValueParameterSymbol( override val hasDefaultValue: Boolean get() = firRef.withFir { it.defaultValue != null } + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Creating pointers for functions parameters from library is not supported yet") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt index 4237d7655c4..bcf8db8941e 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirJavaFieldSymbol.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtJavaFieldSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -40,6 +41,8 @@ internal class KtFirJavaFieldSymbol( override val modality: KtCommonSymbolModality get() = getModality() + override val visibility: KtSymbolVisibility get() = getVisibility() + override fun createPointer(): KtSymbolPointer { TODO("Creating pointers for java fields is not supported yet") } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt index 991465072fb..7c27fcab6d7 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertyGetterSymbol.kt @@ -6,17 +6,19 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor -import org.jetbrains.kotlin.fir.declarations.modality +import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.idea.fir.findPsi import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyGetterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.types.KtType @@ -35,8 +37,20 @@ internal class KtFirPropertyGetterSymbol( override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } override val isDefault: Boolean get() = firRef.withFir { it is FirDefaultPropertyAccessor } + override val isInline: Boolean get() = firRef.withFir { it.isInline } + override val isOverride: Boolean get() = firRef.withFir { it.isOverride } + + override val symbolKind: KtSymbolKind + get() = firRef.withFir { fir -> + when (fir.symbol.callableId.classId) { + null -> KtSymbolKind.TOP_LEVEL + else -> KtSymbolKind.MEMBER + } + } + override val type: KtType = firRef.withFir(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { builder.buildKtType(it.returnTypeRef) } override val modality: KtCommonSymbolModality get() = firRef.withFir(FirResolvePhase.STATUS) { it.modality.getSymbolModality() } + override val visibility: KtSymbolVisibility get() = firRef.withFir(FirResolvePhase.STATUS) { it.visibility.getSymbolVisibility() } override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt index 1e50f3d0bd2..2391d3582c6 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -6,10 +6,9 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor -import org.jetbrains.kotlin.fir.declarations.modality +import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.idea.fir.findPsi import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken @@ -18,8 +17,11 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer +import org.jetbrains.kotlin.idea.frontend.api.types.KtType internal class KtFirPropertySetterSymbol( fir: FirPropertyAccessor, @@ -35,11 +37,22 @@ internal class KtFirPropertySetterSymbol( override val psi: PsiElement? by firRef.withFirAndCache { it.findPsi(fir.session) } override val isDefault: Boolean get() = firRef.withFir { it is FirDefaultPropertyAccessor } + override val isInline: Boolean get() = firRef.withFir { it.isInline } + override val isOverride: Boolean get() = firRef.withFir { it.isOverride } override val modality: KtCommonSymbolModality get() = firRef.withFir(FirResolvePhase.STATUS) { it.modality.getSymbolModality() } + override val visibility: KtSymbolVisibility get() = firRef.withFir(FirResolvePhase.STATUS) { it.visibility.getSymbolVisibility() } override val parameter: KtSetterParameterSymbol by firRef.withFirAndCache { fir -> builder.buildFirSetterParameter(fir.valueParameters.single()) } + override val symbolKind: KtSymbolKind + get() = firRef.withFir { fir -> + when (fir.symbol.callableId.classId) { + null -> KtSymbolKind.TOP_LEVEL + else -> KtSymbolKind.MEMBER + } + } + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Creating pointers for setters from library is not supported yet") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt index 9b07a20d881..c9f93e7623a 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySymbol.kt @@ -7,18 +7,22 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols import com.intellij.psi.PsiElement import org.jetbrains.kotlin.fir.containingClass -import org.jetbrains.kotlin.fir.declarations.FirProperty -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.idea.fir.findPsi import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.KtFirMemberPropertySymbolPointer import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.pointers.createSignature +import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertyGetterSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolKind +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.CanNotCreateSymbolPointerForLocalLibraryDeclarationException import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer @@ -44,6 +48,7 @@ internal class KtFirPropertySymbol( override val type: KtType by firRef.withFirAndCache(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { fir -> builder.buildKtType(fir.returnTypeRef) } override val receiverType: KtType? by firRef.withFirAndCache(FirResolvePhase.TYPES) { fir -> fir.receiverTypeRef?.let(builder::buildKtType) } override val isExtension: Boolean get() = firRef.withFir { it.receiverTypeRef != null } + override val symbolKind: KtSymbolKind get() = firRef.withFir { fir -> when (fir.containingClass()?.classId) { @@ -53,11 +58,32 @@ internal class KtFirPropertySymbol( } override val modality: KtCommonSymbolModality get() = getModality() + override val visibility: KtSymbolVisibility get() = getVisibility() + + + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override val callableIdIfNonLocal: FqName? get() = firRef.withFir { fir -> fir.symbol.callableId.takeUnless { fir.isLocal }?.asFqNameForDebugInfo() } + override val getter: KtPropertyGetterSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { property -> + property.getter?.let { builder.buildPropertyAccessorSymbol(it) } as? KtPropertyGetterSymbol + } + + override val setter: KtPropertySetterSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { property -> + property.getter?.let { builder.buildPropertyAccessorSymbol(it) } as? KtPropertySetterSymbol + } + + override val hasBackingField: Boolean get() = firRef.withFir { it.hasBackingField } + + override val isConst: Boolean get() = firRef.withFir { it.isConst } + + override val isOverride: Boolean get() = firRef.withFir { it.isOverride } + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } return when (symbolKind) { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt index c79b65009a4..9f87a37ef16 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt @@ -13,8 +13,10 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.frontend.api.ValidityToken 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.convertAnnotation import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.name.Name @@ -33,6 +35,12 @@ internal class KtFirSetterParameterSymbol( override val hasDefaultValue: Boolean get() = firRef.withFir { it.defaultValue != null } + override val isVararg: Boolean = false + + override val annotations: List by firRef.withFirAndCache(FirResolvePhase.TYPES) { + convertAnnotation(it) + } + override fun createPointer(): KtSymbolPointer { KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } TODO("Creating pointers for functions parameters from library is not supported yet") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt index d9644ea7b9e..0ae5bf6d811 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt @@ -6,13 +6,16 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibilities +import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.descriptors.java.JavaVisibilities import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.modality -import org.jetbrains.kotlin.idea.frontend.api.symbols.* +import org.jetbrains.kotlin.fir.declarations.visibility import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtCommonSymbolModality import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolModality -import org.jetbrains.kotlin.psi.KtDeclaration +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolVisibility internal inline fun Modality?.getSymbolModality(): M = when (this) { Modality.FINAL -> KtCommonSymbolModality.FINAL @@ -23,4 +26,19 @@ internal inline fun Modality?.getSymbolModality() } as? M ?: error("Sealed modality can only be applied to class") internal inline fun KtFirSymbol.getModality() = - firRef.withFir(FirResolvePhase.STATUS) { it.modality.getSymbolModality() } \ No newline at end of file + firRef.withFir(FirResolvePhase.STATUS) { it.modality.getSymbolModality() } + + +internal fun Visibility?.getSymbolVisibility(): KtSymbolVisibility = when (this) { + Visibilities.Public -> KtSymbolVisibility.PUBLIC + Visibilities.Protected -> KtSymbolVisibility.PROTECTED + Visibilities.Private -> KtSymbolVisibility.PRIVATE + Visibilities.Internal -> KtSymbolVisibility.INTERNAL + Visibilities.Unknown -> KtSymbolVisibility.UNKNOWN + JavaVisibilities.PackageVisibility -> KtSymbolVisibility.UNKNOWN //TODO: Add Java visibilities + null -> error("Symbol visibility should not be null, looks like the fir symbol was not properly resolved") + else -> throw NotImplementedError("Unknown visibility $name") +} + +internal fun KtFirSymbol.getVisibility(): KtSymbolVisibility = + firRef.withFir(FirResolvePhase.STATUS) { it.visibility.getSymbolVisibility() } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt index 2932731e017..5bcb267cfae 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/types/FirKtType.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.types +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.resolve.inference.isBuiltinFunctionalType import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl @@ -68,6 +69,7 @@ internal class KtFirClassType( firBuilder.buildTypeArgument(typeArgument) } } + override val nullability: KtTypeNullability get() = withValidityAssertion { KtTypeNullability.create(coneType.isNullable) } override fun asString(): String = withValidityAssertion { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt new file mode 100644 index 00000000000..f1b09d782fc --- /dev/null +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt @@ -0,0 +1,80 @@ +/* + * 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.utils + +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSymbolOwner +import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.declarations.getPrimaryConstructorIfAny +import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.psi +import org.jetbrains.kotlin.fir.resolve.toSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol +import org.jetbrains.kotlin.fir.types.ConeClassLikeType +import org.jetbrains.kotlin.fir.types.classId +import org.jetbrains.kotlin.fir.types.coneType +import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirAnnotationCall +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtNamedConstantValue +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSimpleConstantValue +import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtUnsupportedConstantValue +import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.psi.KtCallElement + +internal fun mapAnnotationParameters(annotationCall: FirAnnotationCall, session: FirSession): Map { + + val annotationCone = annotationCall.annotationTypeRef.coneType as? ConeClassLikeType ?: return emptyMap() + + val annotationPrimaryCtor = (annotationCone.lookupTag.toSymbol(session)?.fir as? FirRegularClass)?.getPrimaryConstructorIfAny() + val annotationCtorParameterNames = annotationPrimaryCtor?.valueParameters?.map { it.name } + + val resultSet = mutableMapOf() + + val namesSequence = annotationCtorParameterNames?.asSequence()?.iterator() + + for (argument in annotationCall.argumentList.arguments.filterIsInstance()) { + resultSet[argument.name.asString()] = argument.expression + } + + for (argument in annotationCall.argumentList.arguments) { + if (argument is FirNamedArgumentExpression) continue + + while (namesSequence != null && namesSequence.hasNext()) { + val name = namesSequence.next().asString() + if (!resultSet.contains(name)) { + resultSet[name] = argument + break + } + } + } + + return resultSet +} + +private fun convertAnnotation(annotationCall: FirAnnotationCall, session: FirSession): KtFirAnnotationCall? { + + val annotationCone = annotationCall.annotationTypeRef.coneType as? ConeClassLikeType ?: return null + val classId = annotationCone.classId ?: return null + + fun FirExpression.convertConstantExpression() = + (this as? FirConstExpression<*>)?.value?.let { KtSimpleConstantValue(it) } + ?: KtUnsupportedConstantValue + + val resultList = mapAnnotationParameters(annotationCall, session).map { + KtNamedConstantValue(it.key, it.value.convertConstantExpression()) + } + + return KtFirAnnotationCall( + classId = classId, + useSiteTarget = annotationCall.useSiteTarget, + psi = annotationCall.psi as? KtCallElement, + arguments = resultList + ) +} + +internal fun convertAnnotation(declaration: FirAnnotatedDeclaration) = declaration.annotations.mapNotNull { + convertAnnotation(it, declaration.session) +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt index e00c28a154f..e93df9254ae 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt @@ -2,9 +2,13 @@ class: kotlin/Int // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.and isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: and @@ -14,11 +18,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: compareTo @@ -28,11 +37,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: compareTo @@ -42,11 +56,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: compareTo @@ -56,11 +75,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: compareTo @@ -70,11 +94,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: compareTo @@ -84,11 +113,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: compareTo @@ -98,11 +132,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.dec isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: dec @@ -112,11 +151,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -126,11 +170,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -140,11 +189,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -154,11 +208,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -168,11 +227,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -182,11 +246,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.div isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: div @@ -196,11 +265,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.inc isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: inc @@ -210,11 +284,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.inv isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: inv @@ -224,11 +303,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -238,11 +322,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -252,11 +341,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -266,11 +360,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -280,11 +379,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -294,11 +398,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.minus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: minus @@ -308,11 +417,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.or isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: or @@ -322,11 +436,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -336,11 +455,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -350,11 +474,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -364,11 +493,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -378,11 +512,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -392,11 +531,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.plus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: plus @@ -406,11 +550,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.rangeTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rangeTo @@ -420,11 +569,16 @@ KtFirFunctionSymbol: type: kotlin/ranges/IntRange typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.rangeTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rangeTo @@ -434,11 +588,16 @@ KtFirFunctionSymbol: type: kotlin/ranges/IntRange typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.rangeTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rangeTo @@ -448,11 +607,16 @@ KtFirFunctionSymbol: type: kotlin/ranges/LongRange typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.rangeTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rangeTo @@ -462,11 +626,16 @@ KtFirFunctionSymbol: type: kotlin/ranges/IntRange typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -476,11 +645,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -490,11 +664,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -504,11 +683,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -518,11 +702,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -532,11 +721,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/SinceKotlin(version = 1.1)] callableIdIfNonLocal: kotlin.Int.rem isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: rem @@ -546,11 +740,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.shl isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: shl @@ -560,11 +759,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(bitCount)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.shr isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: shr @@ -574,11 +778,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(bitCount)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -588,11 +797,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -602,11 +816,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -616,11 +835,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -630,11 +854,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -644,11 +873,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.times isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: times @@ -658,11 +892,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toByte isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toByte @@ -672,11 +911,16 @@ KtFirFunctionSymbol: type: kotlin/Byte typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toChar isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toChar @@ -686,11 +930,16 @@ KtFirFunctionSymbol: type: kotlin/Char typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toDouble isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toDouble @@ -700,11 +949,16 @@ KtFirFunctionSymbol: type: kotlin/Double typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toFloat isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toFloat @@ -714,11 +968,16 @@ KtFirFunctionSymbol: type: kotlin/Float typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toInt isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toInt @@ -728,11 +987,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toLong isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toLong @@ -742,11 +1006,16 @@ KtFirFunctionSymbol: type: kotlin/Long typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toShort isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toShort @@ -756,11 +1025,16 @@ KtFirFunctionSymbol: type: kotlin/Short typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.unaryMinus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: unaryMinus @@ -770,11 +1044,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.unaryPlus isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: FINAL name: unaryPlus @@ -784,11 +1063,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.ushr isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: ushr @@ -798,11 +1082,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(bitCount)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.xor isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: xor @@ -812,11 +1101,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.equals isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: equals @@ -826,11 +1120,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.hashCode isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: hashCode @@ -840,11 +1139,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.Int.toString isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toString @@ -854,12 +1158,19 @@ KtFirFunctionSymbol: type: kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: kotlin/Int.Companion classKind: COMPANION_OBJECT + companionObject: null + isInner: false modality: FINAL name: Companion origin: LIBRARY + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: MEMBER typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt index fd743597584..1b99e0525de 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt @@ -2,9 +2,13 @@ class: kotlin/collections/MutableList // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.add isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: add @@ -14,11 +18,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.add isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: add @@ -28,11 +37,16 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index), KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.addAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: addAll @@ -42,11 +56,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index), KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.addAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: addAll @@ -56,11 +75,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.clear isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: clear @@ -70,11 +94,16 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.listIterator isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: listIterator @@ -84,11 +113,16 @@ KtFirFunctionSymbol: type: kotlin/collections/MutableListIterator typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.listIterator isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: listIterator @@ -98,11 +132,16 @@ KtFirFunctionSymbol: type: kotlin/collections/MutableListIterator typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.remove isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: remove @@ -112,11 +151,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.removeAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: removeAll @@ -126,11 +170,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.removeAt isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: removeAt @@ -140,11 +189,16 @@ KtFirFunctionSymbol: type: E typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.retainAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: retainAll @@ -154,11 +208,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.set isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: set @@ -168,11 +227,16 @@ KtFirFunctionSymbol: type: E typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index), KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.subList isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: subList @@ -182,11 +246,16 @@ KtFirFunctionSymbol: type: kotlin/collections/MutableList typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(fromIndex), KtFirFunctionValueParameterSymbol(toIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.contains isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: contains @@ -196,11 +265,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.containsAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: containsAll @@ -210,11 +284,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.get isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: get @@ -224,11 +303,16 @@ KtFirFunctionSymbol: type: E typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.indexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: indexOf @@ -238,11 +322,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.isEmpty isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: isEmpty @@ -252,11 +341,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.iterator isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: iterator @@ -266,11 +360,16 @@ KtFirFunctionSymbol: type: kotlin/collections/MutableIterator typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.lastIndexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: lastIndexOf @@ -280,22 +379,34 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.List.size + getter: null + hasBackingField: false + isConst: false isExtension: false + isOverride: false isVal: true modality: ABSTRACT name: size origin: LIBRARY receiverType: null + setter: null symbolKind: MEMBER type: kotlin/Int + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.equals isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: equals @@ -305,11 +416,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(other)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.hashCode isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: hashCode @@ -319,11 +435,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.MutableList.toString isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toString @@ -333,3 +454,4 @@ KtFirFunctionSymbol: type: kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt index e54f3b9808e..40efc2ed813 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt @@ -9,6 +9,7 @@ KtFirJavaFieldSymbol: origin: JAVA symbolKind: MEMBER type: ft! + visibility: PRIVATE KtFirJavaFieldSymbol: callableIdIfNonLocal: java.lang.String.hash @@ -18,11 +19,16 @@ KtFirJavaFieldSymbol: origin: JAVA symbolKind: MEMBER type: kotlin/Int + visibility: PRIVATE KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.hash32 isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: hash32 @@ -32,6 +38,7 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: UNKNOWN KtFirJavaFieldSymbol: callableIdIfNonLocal: java.lang.String.hash32 @@ -41,11 +48,16 @@ KtFirJavaFieldSymbol: origin: JAVA symbolKind: MEMBER type: kotlin/Int + visibility: PRIVATE KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.length isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: length @@ -55,22 +67,34 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: kotlin.CharSequence.length + getter: KtFirPropertyGetterSymbol() + hasBackingField: true + isConst: false isExtension: false + isOverride: false isVal: true modality: ABSTRACT name: length origin: LIBRARY receiverType: null + setter: null symbolKind: MEMBER type: kotlin/Int + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.isEmpty isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: isEmpty @@ -80,11 +104,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.charAt isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: charAt @@ -94,11 +123,16 @@ KtFirFunctionSymbol: type: kotlin/Char typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.codePointAt isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: codePointAt @@ -108,11 +142,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.codePointBefore isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: codePointBefore @@ -122,11 +161,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.codePointCount isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: codePointCount @@ -136,11 +180,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(beginIndex), KtFirFunctionValueParameterSymbol(endIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.offsetByCodePoints isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: offsetByCodePoints @@ -150,11 +199,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index), KtFirFunctionValueParameterSymbol(codePointOffset)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.getChars isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getChars @@ -164,11 +218,16 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(dst), KtFirFunctionValueParameterSymbol(dstBegin)] + visibility: UNKNOWN KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.getChars isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getChars @@ -178,11 +237,16 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(srcBegin), KtFirFunctionValueParameterSymbol(srcEnd), KtFirFunctionValueParameterSymbol(dst), KtFirFunctionValueParameterSymbol(dstBegin)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [java/lang/Deprecated()] callableIdIfNonLocal: java.lang.String.getBytes isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getBytes @@ -192,11 +256,16 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(srcBegin), KtFirFunctionValueParameterSymbol(srcEnd), KtFirFunctionValueParameterSymbol(dst), KtFirFunctionValueParameterSymbol(dstBegin)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.getBytes isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getBytes @@ -206,11 +275,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/ByteArray typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(charsetName)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.getBytes isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getBytes @@ -220,11 +294,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/ByteArray typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(charset)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.getBytes isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: getBytes @@ -234,11 +313,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/ByteArray typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.equals isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: equals @@ -248,11 +332,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(anObject)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.contentEquals isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: contentEquals @@ -262,11 +351,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(sb)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.contentEquals isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: contentEquals @@ -276,11 +370,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(cs)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.equalsIgnoreCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: equalsIgnoreCase @@ -290,11 +389,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(anotherString)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.compareTo isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: compareTo @@ -304,11 +408,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(anotherString)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.compareToIgnoreCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: compareToIgnoreCase @@ -318,11 +427,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.regionMatches isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: regionMatches @@ -332,11 +446,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(toffset), KtFirFunctionValueParameterSymbol(other), KtFirFunctionValueParameterSymbol(ooffset), KtFirFunctionValueParameterSymbol(len)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.regionMatches isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: regionMatches @@ -346,11 +465,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ignoreCase), KtFirFunctionValueParameterSymbol(toffset), KtFirFunctionValueParameterSymbol(other), KtFirFunctionValueParameterSymbol(ooffset), KtFirFunctionValueParameterSymbol(len)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.startsWith isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: startsWith @@ -360,11 +484,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(prefix), KtFirFunctionValueParameterSymbol(toffset)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.startsWith isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: startsWith @@ -374,11 +503,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(prefix)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.endsWith isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: endsWith @@ -388,11 +522,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(suffix)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.hashCode isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: hashCode @@ -402,11 +541,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.indexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: indexOf @@ -416,11 +560,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.indexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: indexOf @@ -430,11 +579,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.indexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: indexOf @@ -444,11 +598,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.indexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: indexOf @@ -458,11 +617,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.indexOfSupplementary isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: indexOfSupplementary @@ -472,11 +636,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PRIVATE KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.lastIndexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: lastIndexOf @@ -486,11 +655,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.lastIndexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: lastIndexOf @@ -500,11 +674,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.lastIndexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: lastIndexOf @@ -514,11 +693,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.lastIndexOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: lastIndexOf @@ -528,11 +712,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.lastIndexOfSupplementary isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: lastIndexOfSupplementary @@ -542,11 +731,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(ch), KtFirFunctionValueParameterSymbol(fromIndex)] + visibility: PRIVATE KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.substring isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: substring @@ -556,11 +750,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(beginIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.substring isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: substring @@ -570,11 +769,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(beginIndex), KtFirFunctionValueParameterSymbol(endIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.subSequence isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: subSequence @@ -584,11 +788,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/CharSequence typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(beginIndex), KtFirFunctionValueParameterSymbol(endIndex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.concat isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: concat @@ -598,11 +807,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(str)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.replace isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: replace @@ -612,11 +826,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(oldChar), KtFirFunctionValueParameterSymbol(newChar)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.replace isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: replace @@ -626,11 +845,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(target), KtFirFunctionValueParameterSymbol(replacement)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.matches isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: matches @@ -640,11 +864,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(regex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.contains isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: OPEN name: contains @@ -654,11 +883,16 @@ KtFirFunctionSymbol: type: kotlin/Boolean typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(s)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.replaceFirst isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: replaceFirst @@ -668,11 +902,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(regex), KtFirFunctionValueParameterSymbol(replacement)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.replaceAll isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: replaceAll @@ -682,11 +921,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(regex), KtFirFunctionValueParameterSymbol(replacement)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.split isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: split @@ -696,11 +940,16 @@ KtFirFunctionSymbol: type: ft<@EnhancedNullability kotlin/Array!>, kotlin/Array!>> typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(regex), KtFirFunctionValueParameterSymbol(limit)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.split isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: split @@ -710,11 +959,16 @@ KtFirFunctionSymbol: type: ft<@EnhancedNullability kotlin/Array!>, kotlin/Array!>> typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(regex)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.toLowerCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toLowerCase @@ -724,11 +978,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(locale)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.toLowerCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toLowerCase @@ -738,11 +997,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.toUpperCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toUpperCase @@ -752,11 +1016,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(locale)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.toUpperCase isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toUpperCase @@ -766,11 +1035,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.trim isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: trim @@ -780,11 +1054,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: java.lang.String.toString isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toString @@ -794,11 +1073,16 @@ KtFirFunctionSymbol: type: kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.toCharArray isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: toCharArray @@ -808,11 +1092,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/CharArray typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [org/jetbrains/annotations/NotNull()] callableIdIfNonLocal: java.lang.String.intern isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: OPEN name: intern @@ -822,11 +1111,16 @@ KtFirFunctionSymbol: type: @EnhancedNullability kotlin/String typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.CharSequence.get isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: get @@ -836,12 +1130,19 @@ KtFirFunctionSymbol: type: kotlin/Char typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: java/lang/String.CaseInsensitiveComparator classKind: CLASS + companionObject: null + isInner: false modality: OPEN name: CaseInsensitiveComparator origin: JAVA + primaryConstructor: null + superTypes: [kotlin/Any, java/util/Comparator!>, java/io/Serializable] symbolKind: MEMBER typeParameters: [] + visibility: PRIVATE diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt index 342b11eeb73..224657cb944 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt @@ -4,10 +4,16 @@ class: kotlin/Lazy // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: kotlin/Lazy classKind: INTERFACE + companionObject: null + isInner: false modality: ABSTRACT name: Lazy origin: LIBRARY + primaryConstructor: null + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt index 770ae0b4770..58e637e1a93 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt @@ -4,10 +4,16 @@ class: java.lang.String // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: java.lang.String classKind: CLASS + companionObject: null + isInner: true modality: FINAL name: String origin: JAVA + primaryConstructor: null + superTypes: [kotlin/Any, java/io/Serializable, kotlin/Comparable!>, kotlin/CharSequence] symbolKind: MEMBER typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunction.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunction.txt index e52e58a16a6..9ba31bfd9c9 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunction.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunction.txt @@ -2,9 +2,13 @@ callable: kotlin/collections/List.get // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.List.get isExtension: false + isExternal: false + isInline: false isOperator: true + isOverride: false isSuspend: false modality: ABSTRACT name: get @@ -14,3 +18,4 @@ KtFirFunctionSymbol: type: E typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunctionWithOverloads.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunctionWithOverloads.txt index 03c1fadb285..a0568966067 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunctionWithOverloads.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/memberFunctionWithOverloads.txt @@ -2,9 +2,13 @@ callable: kotlin/collections/List.listIterator // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.List.listIterator isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: listIterator @@ -14,11 +18,16 @@ KtFirFunctionSymbol: type: kotlin/collections/ListIterator typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.List.listIterator isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: ABSTRACT name: listIterator @@ -28,3 +37,4 @@ KtFirFunctionSymbol: type: kotlin/collections/ListIterator typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(index)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt index 05c1b07eae4..83ba77170c4 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt @@ -2,10 +2,16 @@ class: kotlin/collections/MutableMap.MutableEntry // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: kotlin/collections/MutableMap.MutableEntry classKind: INTERFACE + companionObject: null + isInner: false modality: ABSTRACT name: MutableEntry origin: LIBRARY + primaryConstructor: null + superTypes: [kotlin/collections/Map.Entry] symbolKind: MEMBER typeParameters: [KtFirTypeParameterSymbol(K), KtFirTypeParameterSymbol(V)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/class.kt b/idea/idea-frontend-fir/testData/symbolPointer/class.kt index 1fcbb434dca..2c3a1c397ad 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/class.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/class.kt @@ -3,10 +3,16 @@ class A { // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt index 253e1f40c0d..9f3bef02003 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt @@ -3,18 +3,26 @@ class A() { // SYMBOLS: KtFirConstructorSymbol: + annotations: [] containingClassIdIfNonLocal: A isPrimary: true origin: SOURCE symbolKind: MEMBER type: A valueParameters: [] + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt index ae8438177f5..cbce77c71da 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt @@ -1,18 +1,21 @@ class A() { - constructor(x: Int): this() - constructor(y: Int, z: String) : this(y) + constructor(x: Int): this() + constructor(y: Int, z: String) : this(y) } // SYMBOLS: KtFirConstructorSymbol: + annotations: [] containingClassIdIfNonLocal: A isPrimary: true origin: SOURCE symbolKind: MEMBER type: A valueParameters: [] + visibility: PUBLIC KtFirFunctionValueParameterSymbol: + annotations: [] hasDefaultValue: false isVararg: false name: x @@ -21,14 +24,17 @@ KtFirFunctionValueParameterSymbol: type: kotlin/Int KtFirConstructorSymbol: + annotations: [] containingClassIdIfNonLocal: A isPrimary: false origin: SOURCE symbolKind: MEMBER type: A valueParameters: Could not render due to java.lang.ClassCastException: org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirFunctionValueParameterSymbol cannot be cast to org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirConstructorValueParameterSymbol + visibility: PUBLIC KtFirFunctionValueParameterSymbol: + annotations: [] hasDefaultValue: false isVararg: false name: y @@ -37,6 +43,7 @@ KtFirFunctionValueParameterSymbol: type: kotlin/Int KtFirFunctionValueParameterSymbol: + annotations: [] hasDefaultValue: false isVararg: false name: z @@ -45,18 +52,26 @@ KtFirFunctionValueParameterSymbol: type: kotlin/String KtFirConstructorSymbol: + annotations: [] containingClassIdIfNonLocal: A isPrimary: false origin: SOURCE symbolKind: MEMBER type: A valueParameters: Could not render due to java.lang.ClassCastException: org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirFunctionValueParameterSymbol cannot be cast to org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirConstructorValueParameterSymbol + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt index c1ed8e27410..b05ecb9d2cb 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt @@ -1,5 +1,5 @@ enum class X { - Y, Z; + Y, Z; } // SYMBOLS: @@ -18,10 +18,16 @@ KtFirEnumEntrySymbol: type: X KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: X classKind: ENUM_CLASS + companionObject: null + isInner: false modality: FINAL name: X origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Enum] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt index edb0a465cfd..bc8e6474996 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt @@ -1,13 +1,17 @@ class A { - fun x(): Int - fun y() + fun x(): Int + fun y() } // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: A.x isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: x @@ -17,11 +21,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: A.y isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: y @@ -31,12 +40,19 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt index 0df24252517..6418c1576db 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt @@ -1,42 +1,66 @@ class A { - val x: Int = 10 - val Int.y get() = this + val x: Int = 10 + val Int.y get() = this } // SYMBOLS: KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: A.x + getter: KtFirPropertyGetterSymbol() + hasBackingField: true + isConst: false isExtension: false + isOverride: false isVal: true modality: FINAL name: x origin: SOURCE receiverType: null + setter: null symbolKind: MEMBER type: kotlin/Int + visibility: PUBLIC KtFirPropertyGetterSymbol: isDefault: false + isInline: false + isOverride: false modality: FINAL origin: SOURCE - type: kotlin/Int + symbolKind: TOP_LEVEL + type: Could not render due to java.lang.ClassCastException: org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl cannot be cast to org.jetbrains.kotlin.fir.types.FirResolvedTypeRef + visibility: PUBLIC KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: A.y + getter: KtFirPropertyGetterSymbol() + hasBackingField: false + isConst: false isExtension: true + isOverride: false isVal: true modality: FINAL name: y origin: SOURCE receiverType: kotlin/Int + setter: null symbolKind: MEMBER type: kotlin/Int + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/topLevelFunctions.kt b/idea/idea-frontend-fir/testData/symbolPointer/topLevelFunctions.kt index 56042583d13..056966817f2 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/topLevelFunctions.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/topLevelFunctions.kt @@ -3,9 +3,13 @@ fun y() {} // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: x isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: x @@ -15,11 +19,16 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: y isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: y @@ -29,3 +38,4 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolPointer/topLevelProperties.kt b/idea/idea-frontend-fir/testData/symbolPointer/topLevelProperties.kt index 49b10a5735a..ba6449c3871 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/topLevelProperties.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/topLevelProperties.kt @@ -3,29 +3,47 @@ val Int.y get() = this // SYMBOLS: KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: x + getter: KtFirPropertyGetterSymbol() + hasBackingField: true + isConst: false isExtension: false + isOverride: false isVal: true modality: FINAL name: x origin: SOURCE receiverType: null + setter: null symbolKind: TOP_LEVEL type: kotlin/Int + visibility: PUBLIC KtFirPropertyGetterSymbol: isDefault: false + isInline: false + isOverride: false modality: FINAL origin: SOURCE - type: kotlin/Int + symbolKind: TOP_LEVEL + type: Could not render due to java.lang.ClassCastException: org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl cannot be cast to org.jetbrains.kotlin.fir.types.FirResolvedTypeRef + visibility: PUBLIC KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: y + getter: KtFirPropertyGetterSymbol() + hasBackingField: false + isConst: false isExtension: true + isOverride: false isVal: true modality: FINAL name: y origin: SOURCE receiverType: kotlin/Int + setter: null symbolKind: TOP_LEVEL type: kotlin/Int + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/fileWalkDirectionEnum.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/fileWalkDirectionEnum.txt index b29b6fb78dc..cd05ea24379 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/fileWalkDirectionEnum.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/fileWalkDirectionEnum.txt @@ -2,9 +2,13 @@ callable: kotlin/collections/listOf // SYMBOLS: KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.listOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: listOf @@ -14,11 +18,16 @@ KtFirFunctionSymbol: type: kotlin/collections/List typeParameters: [KtFirTypeParameterSymbol(T)] valueParameters: [KtFirFunctionValueParameterSymbol(element)] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [kotlin/internal/InlineOnly()] callableIdIfNonLocal: kotlin.collections.listOf isExtension: false + isExternal: false + isInline: true isOperator: false + isOverride: false isSuspend: false modality: FINAL name: listOf @@ -28,11 +37,16 @@ KtFirFunctionSymbol: type: kotlin/collections/List typeParameters: [KtFirTypeParameterSymbol(T)] valueParameters: [] + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: kotlin.collections.listOf isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: listOf @@ -42,3 +56,4 @@ KtFirFunctionSymbol: type: kotlin/collections/List typeParameters: [KtFirTypeParameterSymbol(T)] valueParameters: [KtFirFunctionValueParameterSymbol(elements)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt index 5dfb2271dd2..dd99cc18b1a 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt @@ -2,10 +2,16 @@ class: kotlin/collections/Iterator // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: kotlin/collections/Iterator classKind: INTERFACE + companionObject: null + isInner: false modality: ABSTRACT name: Iterator origin: LIBRARY + primaryConstructor: null + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T)] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt index 64124fa9a2b..e0d6d9fe9a9 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt @@ -2,10 +2,16 @@ class: kotlin/io/FileWalkDirection // SYMBOLS: KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: kotlin/io/FileWalkDirection classKind: ENUM_CLASS + companionObject: null + isInner: false modality: FINAL name: FileWalkDirection origin: LIBRARY + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Enum] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt new file mode 100644 index 00000000000..22b530ff6d7 --- /dev/null +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt @@ -0,0 +1,90 @@ + +annotation class Anno(val param1: String, val param2: Int) + +@Anno(param1 = "param", 2) +class X { + @Anno("funparam", 3) + fun x() { + + } +} + +// SYMBOLS: +/* +KtFirFunctionValueParameterSymbol: + annotations: [] + hasDefaultValue: false + isVararg: false + name: param1 + origin: SOURCE + symbolKind: NON_PROPERTY_PARAMETER + type: kotlin/String + +KtFirFunctionValueParameterSymbol: + annotations: [] + hasDefaultValue: false + isVararg: false + name: param2 + origin: SOURCE + symbolKind: NON_PROPERTY_PARAMETER + type: kotlin/Int + +KtFirConstructorSymbol: + annotations: [] + containingClassIdIfNonLocal: Anno + isPrimary: true + origin: SOURCE + symbolKind: MEMBER + type: Anno + valueParameters: Could not render due to java.lang.ClassCastException: org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirFunctionValueParameterSymbol cannot be cast to org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirConstructorValueParameterSymbol + visibility: PUBLIC + +KtFirClassOrObjectSymbol: + annotations: [] + classIdIfNonLocal: Anno + classKind: ANNOTATION_CLASS + companionObject: null + isInner: false + modality: FINAL + name: Anno + origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Annotation] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: PUBLIC + +KtFirFunctionSymbol: + annotations: [Anno(param1 = funparam, param2 = 3)] + callableIdIfNonLocal: X.x + isExtension: false + isExternal: false + isInline: false + isOperator: false + isOverride: false + isSuspend: false + modality: FINAL + name: x + origin: SOURCE + receiverType: null + symbolKind: MEMBER + type: kotlin/Unit + typeParameters: [] + valueParameters: [] + visibility: PUBLIC + +KtFirClassOrObjectSymbol: + annotations: [Anno(param1 = param, param2 = 2)] + classIdIfNonLocal: X + classKind: CLASS + companionObject: null + isInner: false + modality: FINAL + name: X + origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: PUBLIC +*/ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt index 96fdffbd6df..ea6fba4064a 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt @@ -4,11 +4,17 @@ class A { // SYMBOLS: /* KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt index dddb8eb6a6f..314f85d4084 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt @@ -6,20 +6,31 @@ class A { // SYMBOLS: /* KtFirPropertySymbol: + annotations: [] callableIdIfNonLocal: A.a + getter: KtFirPropertyGetterSymbol() + hasBackingField: true + isConst: false isExtension: false + isOverride: false isVal: true modality: FINAL name: a origin: SOURCE receiverType: null + setter: null symbolKind: MEMBER type: kotlin/Int + visibility: PUBLIC KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: A.x isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: x @@ -29,13 +40,20 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt index 0d51695e228..eb3c1af18fd 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt @@ -12,11 +12,17 @@ KtFirTypeParameterSymbol: origin: SOURCE KtFirClassOrObjectSymbol: + annotations: [] classIdIfNonLocal: A classKind: CLASS + companionObject: null + isInner: false modality: FINAL name: A origin: SOURCE + primaryConstructor: KtFirConstructorSymbol() + superTypes: [kotlin/Any] symbolKind: TOP_LEVEL typeParameters: [KtFirTypeParameterSymbol(T), KtFirTypeParameterSymbol(R)] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/extensionFunction.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/extensionFunction.kt index 026122d42e6..d9aaa3c8a13 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/extensionFunction.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/extensionFunction.kt @@ -3,9 +3,13 @@ fun String.foo(): Int = 10 // SYMBOLS: /* KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: foo isExtension: true + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: foo @@ -15,4 +19,5 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/function.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/function.kt index 9b6e794462a..fc02eb2f91b 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/function.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/function.kt @@ -3,6 +3,7 @@ fun foo(x: Int) {} // SYMBOLS: /* KtFirFunctionValueParameterSymbol: + annotations: [] hasDefaultValue: false isVararg: false name: x @@ -11,9 +12,13 @@ KtFirFunctionValueParameterSymbol: type: kotlin/Int KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: foo isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: foo @@ -23,4 +28,5 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [] valueParameters: [KtFirFunctionValueParameterSymbol(x)] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/functionWithTypeParams.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/functionWithTypeParams.kt index 09c83853fd4..356bdc81ee0 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/functionWithTypeParams.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/functionWithTypeParams.kt @@ -7,6 +7,7 @@ KtFirTypeParameterSymbol: origin: SOURCE KtFirFunctionValueParameterSymbol: + annotations: [] hasDefaultValue: false isVararg: false name: x @@ -15,9 +16,13 @@ KtFirFunctionValueParameterSymbol: type: X KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: foo isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: foo @@ -27,4 +32,5 @@ KtFirFunctionSymbol: type: kotlin/Unit typeParameters: [KtFirTypeParameterSymbol(X)] valueParameters: [KtFirFunctionValueParameterSymbol(x)] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/implicitReturn.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/implicitReturn.kt index 8fc39adec49..309f6d8c489 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/implicitReturn.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/implicitReturn.kt @@ -3,9 +3,13 @@ fun foo(): Int = 10 // SYMBOLS: /* KtFirFunctionSymbol: + annotations: [] callableIdIfNonLocal: foo isExtension: false + isExternal: false + isInline: false isOperator: false + isOverride: false isSuspend: false modality: FINAL name: foo @@ -15,4 +19,5 @@ KtFirFunctionSymbol: type: kotlin/Int typeParameters: [] valueParameters: [] + visibility: PUBLIC */ diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java index 46570b2309b..c9c56fa67b1 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/frontend/api/symbols/SymbolsByPsiBuildingTestGenerated.java @@ -28,6 +28,11 @@ public class SymbolsByPsiBuildingTestGenerated extends AbstractSymbolsByPsiBuild KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/testData/symbolsByPsi"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @TestMetadata("annotations.kt") + public void testAnnotations() throws Exception { + runTest("idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt"); + } + @TestMetadata("class.kt") public void testClass() throws Exception { runTest("idea/idea-frontend-fir/testData/symbolsByPsi/class.kt");