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 a7eef0dbde4..b18047d7142 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 @@ -41,6 +41,11 @@ abstract class KtClassOrObjectSymbol : KtClassLikeSymbol(), abstract val classKind: KtClassKind abstract val isInner: Boolean + abstract val isData: Boolean + abstract val isInline: Boolean + abstract val isFun: Boolean + + abstract val isExternal: Boolean abstract val companionObject: KtClassOrObjectSymbol? 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 e2e8ad37e1a..44e8bc4562f 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 @@ -48,6 +48,11 @@ internal class KtFirClassOrObjectSymbol( } override val isInner: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isInner } + override val isData: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isData } + override val isInline: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isInline } + override val isFun: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isFun } + + override val isExternal: Boolean get() = firRef.withFir(FirResolvePhase.STATUS) { it.isExternal } override val companionObject: KtClassOrObjectSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { fir -> fir.companionObject?.let { builder.buildClassSymbol(it) } diff --git a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result index d3a8a218da9..541669d4672 100644 --- a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result +++ b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.kt.result @@ -57,6 +57,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: C classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: C @@ -72,6 +76,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: I classKind: INTERFACE companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: ABSTRACT name: I diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt index ace6a3febd4..0720fac094a 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/Int.txt @@ -1175,6 +1175,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: kotlin/Int.Companion classKind: COMPANION_OBJECT companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Companion 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 cf991202261..55247447b51 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt @@ -1311,6 +1311,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: java/lang/String.CaseInsensitiveComparator classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: OPEN name: CaseInsensitiveComparator diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt index 35a1761be6e..345ad746ab6 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/class.txt @@ -8,6 +8,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: kotlin/Lazy classKind: INTERFACE companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: ABSTRACT name: Lazy diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt index 5d7f0a1fc3a..11425b06b19 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/classFromJdk.txt @@ -8,6 +8,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: java/lang/String classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: String diff --git a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt index c69a559290d..a82f48bc2b0 100644 --- a/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt +++ b/idea/idea-frontend-fir/testData/resoreSymbolFromLibrary/nestedClass.txt @@ -6,6 +6,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: kotlin/collections/MutableMap.MutableEntry classKind: INTERFACE companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: ABSTRACT name: MutableEntry diff --git a/idea/idea-frontend-fir/testData/symbolPointer/class.kt b/idea/idea-frontend-fir/testData/symbolPointer/class.kt index 355debbe27b..b6a5c3dd0c5 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/class.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/class.kt @@ -7,6 +7,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt index 546312e8e46..3688a00f3c7 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classPrimaryConstructor.kt @@ -17,6 +17,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt index d0c261bb2d8..f94ee1bc48f 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/classSecondaryConstructors.kt @@ -66,6 +66,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt index edc14a00daa..a5aedfef958 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/enum.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/enum.kt @@ -22,6 +22,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: X classKind: ENUM_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: X diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt index 174b73cc883..810058a5442 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberFunctions.kt @@ -47,6 +47,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt index 5df6abded97..76c897c9fa3 100644 --- a/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt +++ b/idea/idea-frontend-fir/testData/symbolPointer/memberProperties.kt @@ -65,6 +65,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt index 303ae5b61c0..3aa8c68e189 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/iterator.txt @@ -6,6 +6,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: kotlin/collections/Iterator classKind: INTERFACE companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: ABSTRACT name: Iterator diff --git a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt index 8ed8987ff7e..2f0f1d293af 100644 --- a/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt +++ b/idea/idea-frontend-fir/testData/symbolsByFqName/listOf.txt @@ -6,6 +6,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: kotlin/io/FileWalkDirection classKind: ENUM_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: FileWalkDirection diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt index 9848a09db9c..a49294b62f1 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/annotations.kt @@ -44,6 +44,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: Anno classKind: ANNOTATION_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Anno @@ -78,6 +82,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: X classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: X diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt index 752929ff317..7b5d0a5f525 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/anonymousObject.kt @@ -83,6 +83,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: AnonymousContainer classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: AnonymousContainer diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt index 5d66681ccdf..cd8be49a5ba 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/class.kt @@ -8,6 +8,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt index f7f391475f0..be0f5d831e6 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classMembes.kt @@ -51,6 +51,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt index 15a28cbed28..d16cb086018 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/classWithTypeParams.kt @@ -18,6 +18,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: A classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: A diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt index 4dadc23c08f..c86dabf4d67 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/localDeclarations.kt @@ -38,6 +38,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: null classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: F diff --git a/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt b/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt index 8a9da363095..0da2a83746f 100644 --- a/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt +++ b/idea/idea-frontend-fir/testData/symbolsByPsi/typeAnnotations.kt @@ -22,6 +22,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: Anno1 classKind: ANNOTATION_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Anno1 @@ -37,6 +41,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: Anno2 classKind: ANNOTATION_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Anno2 @@ -52,6 +60,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: Anno3 classKind: ANNOTATION_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Anno3 @@ -67,6 +79,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: Anno4 classKind: ANNOTATION_CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: Anno4 @@ -82,6 +98,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: I classKind: INTERFACE companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: ABSTRACT name: I @@ -147,6 +167,10 @@ KtFirClassOrObjectSymbol: classIdIfNonLocal: X classKind: CLASS companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false isInner: false modality: FINAL name: X