From 968799bb9d1064f5e061609f419c81fc1e65381a Mon Sep 17 00:00:00 2001 From: Tianyu Geng Date: Fri, 13 Aug 2021 17:17:39 -0700 Subject: [PATCH] FIR IDE: hoist up API to get Java getter/setter name of a property... and expose API to get the getter and setter symbols for synthetic Java properties. --- .../api/components/KtSymbolInfoProvider.kt | 7 +++ .../api/symbols/KtVariableLikeSymbol.kt | 4 +- .../fir/components/KtFirSymbolInfoProvider.kt | 27 +++++++++ .../fir/symbols/KtFirKotlinPropertySymbol.kt | 3 +- .../KtFirSyntheticJavaPropertySymbol.kt | 20 ++++--- .../fileScopeTest/simpleFileScope.txt | 2 + .../memberScopeByFqName/MutableList.txt | 2 + .../memberScopeByFqName/java.lang.String.txt | 6 +- .../symbols/symbolByPsi/anonymousObject.txt | 4 ++ .../symbols/symbolByPsi/classMembes.txt | 2 + .../symbols/symbolByPsi/deprecated.txt | 16 +++++ .../symbols/symbolByPsi/enumValueMember.txt | 4 ++ .../testData/symbols/symbolByPsi/jvmName.kt | 7 +++ .../testData/symbols/symbolByPsi/jvmName.txt | 60 +++++++++++++++++++ .../symbols/symbolByPsi/memberProperties.txt | 4 ++ .../symbolByPsi/topLevelProperties.txt | 4 ++ .../symbols/symbolByPsi/typeAnnotations.txt | 2 + .../api/symbols/SymbolByPsiTestGenerated.java | 6 ++ 18 files changed, 167 insertions(+), 13 deletions(-) create mode 100644 idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.kt create mode 100644 idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.txt diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtSymbolInfoProvider.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtSymbolInfoProvider.kt index 57300e7b037..091ab90794d 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtSymbolInfoProvider.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/components/KtSymbolInfoProvider.kt @@ -8,11 +8,15 @@ package org.jetbrains.kotlin.idea.frontend.api.components import org.jetbrains.kotlin.descriptors.Deprecation import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol +import org.jetbrains.kotlin.name.Name public abstract class KtSymbolInfoProvider : KtAnalysisSessionComponent() { public abstract fun getDeprecation(symbol: KtSymbol): Deprecation? public abstract fun getGetterDeprecation(symbol: KtPropertySymbol): Deprecation? public abstract fun getSetterDeprecation(symbol: KtPropertySymbol): Deprecation? + + public abstract fun getJavaGetterName(symbol: KtPropertySymbol): Name + public abstract fun getJavaSetterName(symbol: KtPropertySymbol): Name? } public interface KtSymbolInfoProviderMixIn : KtAnalysisSessionMixIn { @@ -33,4 +37,7 @@ public interface KtSymbolInfoProviderMixIn : KtAnalysisSessionMixIn { */ public val KtPropertySymbol.setterDeprecationStatus: Deprecation? get() = analysisSession.symbolInfoProvider.getSetterDeprecation(this) + + public val KtPropertySymbol.javaGetterName: Name get() = analysisSession.symbolInfoProvider.getJavaGetterName(this) + public val KtPropertySymbol.javaSetterName: Name? get() = analysisSession.symbolInfoProvider.getJavaSetterName(this) } \ No newline at end of file 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 494b71816ae..3646411e0e3 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 @@ -115,8 +115,8 @@ public abstract class KtSyntheticJavaPropertySymbol : KtPropertySymbol() { abstract override val getter: KtPropertyGetterSymbol - public abstract val javaGetterName: Name - public abstract val javaSetterName: Name? + public abstract val javaGetterSymbol: KtFunctionSymbol + public abstract val javaSetterSymbol: KtFunctionSymbol? abstract override fun createPointer(): KtSymbolPointer } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolInfoProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolInfoProvider.kt index 15839c79d09..e029ec92e02 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolInfoProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolInfoProvider.kt @@ -9,13 +9,19 @@ import org.jetbrains.kotlin.descriptors.Deprecation import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.declarations.getDeprecationForCallSite import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.idea.asJava.getJvmNameFromAnnotation import org.jetbrains.kotlin.idea.frontend.api.components.KtSymbolInfoProvider import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirBackingFieldSymbol import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSymbol +import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.KtFirSyntheticJavaPropertySymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSyntheticJavaPropertySymbol import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken +import org.jetbrains.kotlin.load.java.JvmAbi +import org.jetbrains.kotlin.name.Name internal class KtFirSymbolInfoProvider( override val analysisSession: KtFirAnalysisSession, @@ -47,4 +53,25 @@ internal class KtFirSymbolInfoProvider( it.symbol.getDeprecationForCallSite(AnnotationUseSiteTarget.PROPERTY_SETTER, AnnotationUseSiteTarget.PROPERTY) } } + + override fun getJavaGetterName(symbol: KtPropertySymbol): Name { + require(symbol is KtFirSymbol<*>) + if (symbol is KtFirSyntheticJavaPropertySymbol) { + return symbol.firRef.withFir { it.getter.delegate.name } + } + val jvmName = symbol.getJvmNameFromAnnotation(AnnotationUseSiteTarget.PROPERTY_GETTER) + return Name.identifier(jvmName ?: JvmAbi.getterName(symbol.name.identifier)) + } + + override fun getJavaSetterName(symbol: KtPropertySymbol): Name? { + require(symbol is KtFirSymbol<*>) + if (symbol is KtFirSyntheticJavaPropertySymbol) { + symbol.firRef.withFir { it.setter?.delegate?.name } + } + return if (symbol.isVal) null + else { + val jvmName = symbol.getJvmNameFromAnnotation(AnnotationUseSiteTarget.PROPERTY_SETTER) + Name.identifier(jvmName ?: JvmAbi.setterName(symbol.name.identifier)) + } + } } \ No newline at end of file diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirKotlinPropertySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirKotlinPropertySymbol.kt index c9e2d769ccc..8213b5deb90 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirKotlinPropertySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirKotlinPropertySymbol.kt @@ -10,7 +10,8 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirFakeSourceElementKind import org.jetbrains.kotlin.fir.containingClass -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.idea.fir.findPsi diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt index 72c2544235a..1f85d79c2b3 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSyntheticJavaPropertySymbol.kt @@ -9,9 +9,9 @@ import com.intellij.psi.PsiElement import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.isOverride import org.jetbrains.kotlin.fir.declarations.utils.isStatic -import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty 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.fir.KtSymbolByFirBuilder @@ -22,10 +22,7 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached import org.jetbrains.kotlin.idea.frontend.api.fir.utils.convertConstantExpression import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef -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.KtSymbolOrigin -import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSyntheticJavaPropertySymbol +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.KtConstantValue import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations @@ -74,14 +71,21 @@ internal class KtFirSyntheticJavaPropertySymbol( override val getter: KtPropertyGetterSymbol by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { property -> property.getter.let { builder.callableBuilder.buildPropertyAccessorSymbol(it) } as KtPropertyGetterSymbol } + override val javaGetterSymbol: KtFunctionSymbol + get() { + return firRef.withFir { builder.functionLikeBuilder.buildFunctionSymbol(it.getter.delegate) } + } + override val javaSetterSymbol: KtFunctionSymbol? + get() { + return firRef.withFir { fir -> + fir.setter?.delegate?.let { setter -> builder.functionLikeBuilder.buildFunctionSymbol(setter) } + } + } override val setter: KtPropertySetterSymbol? by firRef.withFirAndCache(FirResolvePhase.RAW_FIR) { property -> property.setter?.let { builder.callableBuilder.buildPropertyAccessorSymbol(it) } as? KtPropertySetterSymbol } - override val javaGetterName: Name get() = firRef.withFir { it.getter.delegate.name } - override val javaSetterName: Name? get() = firRef.withFir { it.setter?.delegate?.name } - override val isFromPrimaryConstructor: Boolean get() = false override val isOverride: Boolean get() = firRef.withFir { it.isOverride } override val isStatic: Boolean get() = firRef.withFir { it.isStatic } diff --git a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.txt b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.txt index 48d59b78fdb..15112514967 100644 --- a/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.txt +++ b/idea/idea-frontend-fir/testData/fileScopeTest/simpleFileScope.txt @@ -61,6 +61,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getTestVal + javaSetterName: null setterDeprecationStatus: null CLASSIFIER NAMES: diff --git a/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt b/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt index 062728a1f1e..c46059d816e 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/MutableList.txt @@ -561,6 +561,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getSize + javaSetterName: null setterDeprecationStatus: null KtFirFunctionSymbol: 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 5cf1def82cd..82224ff78bb 100644 --- a/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt +++ b/idea/idea-frontend-fir/testData/memberScopeByFqName/java.lang.String.txt @@ -81,8 +81,8 @@ KtFirSyntheticJavaPropertySymbol: isOverride: false isStatic: false isVal: true - javaGetterName: length - javaSetterName: null + javaGetterSymbol: KtFirFunctionSymbol(java/lang/String.length) + javaSetterSymbol: null modality: OPEN name: length origin: JAVA_SYNTHETIC_PROPERTY @@ -92,6 +92,8 @@ KtFirSyntheticJavaPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: length + javaSetterName: null setterDeprecationStatus: null KtFirFunctionSymbol: diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/anonymousObject.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/anonymousObject.txt index 90b56162cea..fd3b10b3784 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/anonymousObject.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/anonymousObject.txt @@ -50,6 +50,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getData + javaSetterName: null setterDeprecationStatus: null KtFirAnonymousObjectSymbol: @@ -92,6 +94,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getAnonymousObject + javaSetterName: null setterDeprecationStatus: null KtFirNamedClassOrObjectSymbol: diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/classMembes.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/classMembes.txt index 0b3fb79c98f..92baa01d804 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/classMembes.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/classMembes.txt @@ -25,6 +25,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getA + javaSetterName: null setterDeprecationStatus: null KtFirFunctionSymbol: diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/deprecated.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/deprecated.txt index 4acde93189b..0ccfbb0c773 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/deprecated.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/deprecated.txt @@ -30,6 +30,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i) getterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i) + javaGetterName: getI + javaSetterName: null setterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i) KtFirKotlinPropertySymbol: @@ -64,6 +66,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use getter of i2) + javaGetterName: getI2 + javaSetterName: null setterDeprecationStatus: null KtFirKotlinPropertySymbol: @@ -98,6 +102,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getI3 + javaSetterName: setI3 setterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use getter of i3) KtFirKotlinPropertySymbol: @@ -135,6 +141,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use getter of i4) + javaGetterName: getI4 + javaSetterName: setI4 setterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use getter of i4) KtFirFunctionSymbol: @@ -226,6 +234,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i2) getterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i2) + javaGetterName: getI2 + javaSetterName: null setterDeprecationStatus: Deprecation(level=WARNING, inheritable=true, message=don't use i2) KtFirFunctionSymbol: @@ -312,6 +322,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: Deprecation(level=ERROR, inheritable=true, message=null) getterDeprecationStatus: Deprecation(level=ERROR, inheritable=true, message=null) + javaGetterName: getJ + javaSetterName: null setterDeprecationStatus: Deprecation(level=ERROR, inheritable=true, message=null) KtFirKotlinPropertySymbol: @@ -346,6 +358,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: Deprecation(level=HIDDEN, inheritable=true, message=null) getterDeprecationStatus: Deprecation(level=HIDDEN, inheritable=true, message=null) + javaGetterName: getJ2 + javaSetterName: null setterDeprecationStatus: Deprecation(level=HIDDEN, inheritable=true, message=null) KtFirKotlinPropertySymbol: @@ -380,4 +394,6 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: Deprecation(level=WARNING, inheritable=false, message=null) getterDeprecationStatus: Deprecation(level=WARNING, inheritable=false, message=null) + javaGetterName: getJ2 + javaSetterName: null setterDeprecationStatus: Deprecation(level=WARNING, inheritable=false, message=null) diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/enumValueMember.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/enumValueMember.txt index d272058aa19..9af9bebccd7 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/enumValueMember.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/enumValueMember.txt @@ -77,6 +77,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getExitAnimation + javaSetterName: null setterDeprecationStatus: null KtFirEnumEntrySymbol: @@ -117,6 +119,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getExitAnimation + javaSetterName: null setterDeprecationStatus: null KtFirNamedClassOrObjectSymbol: diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.kt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.kt new file mode 100644 index 00000000000..b835202662a --- /dev/null +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.kt @@ -0,0 +1,7 @@ +// WITH_STDLIB + +class Foo { + @get:JvmName("getMyI") + @set:JvmName("setMyI") + var i: Int +} \ No newline at end of file diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.txt new file mode 100644 index 00000000000..0d36d749519 --- /dev/null +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.txt @@ -0,0 +1,60 @@ +KtFirKotlinPropertySymbol: + annotatedType: [] kotlin/Int + annotationClassIds: [ + kotlin/jvm/JvmName + kotlin/jvm/JvmName + ] + annotations: [ + kotlin/jvm/JvmName(name = getMyI) + psi: KtAnnotationEntry + kotlin/jvm/JvmName(name = setMyI) + psi: KtAnnotationEntry + ] + callableIdIfNonLocal: /Foo.i + dispatchType: Foo + getter: KtFirPropertyGetterSymbol() + hasBackingField: true + hasGetter: true + hasSetter: true + initializer: null + isConst: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: false + modality: FINAL + name: i + origin: SOURCE + receiverType: null + setter: KtFirPropertySetterSymbol() + symbolKind: MEMBER + visibility: Public + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getMyI + javaSetterName: setMyI + setterDeprecationStatus: null + +KtFirNamedClassOrObjectSymbol: + annotationClassIds: [] + annotations: [] + classIdIfNonLocal: Foo + classKind: CLASS + companionObject: null + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Foo + origin: SOURCE + superTypes: [ + [] kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + deprecationStatus: null diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/memberProperties.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/memberProperties.txt index 423ddbff59e..aff1a186118 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/memberProperties.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/memberProperties.txt @@ -25,6 +25,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getX + javaSetterName: null setterDeprecationStatus: null KtFirPropertyGetterSymbol: @@ -72,6 +74,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getY + javaSetterName: null setterDeprecationStatus: null KtFirNamedClassOrObjectSymbol: diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/topLevelProperties.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/topLevelProperties.txt index 7f59a4bc85f..35aabf55743 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/topLevelProperties.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/topLevelProperties.txt @@ -25,6 +25,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getX + javaSetterName: null setterDeprecationStatus: null KtFirPropertyGetterSymbol: @@ -72,4 +74,6 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getY + javaSetterName: null setterDeprecationStatus: null diff --git a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/typeAnnotations.txt b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/typeAnnotations.txt index 29013508f5a..92785da697a 100644 --- a/idea/idea-frontend-fir/testData/symbols/symbolByPsi/typeAnnotations.txt +++ b/idea/idea-frontend-fir/testData/symbols/symbolByPsi/typeAnnotations.txt @@ -205,6 +205,8 @@ KtFirKotlinPropertySymbol: visibility: Public deprecationStatus: null getterDeprecationStatus: null + javaGetterName: getX + javaSetterName: null setterDeprecationStatus: null KtFirNamedClassOrObjectSymbol: diff --git a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/symbols/SymbolByPsiTestGenerated.java b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/symbols/SymbolByPsiTestGenerated.java index e0bd3c24150..93420f5ed1d 100644 --- a/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/symbols/SymbolByPsiTestGenerated.java +++ b/idea/idea-frontend-fir/tests/org/jetbrains/kotlin/idea/fir/frontend/api/symbols/SymbolByPsiTestGenerated.java @@ -120,6 +120,12 @@ public class SymbolByPsiTestGenerated extends AbstractSymbolByPsiTest { runTest("idea/idea-frontend-fir/testData/symbols/symbolByPsi/implicitReturnInLambda.kt"); } + @Test + @TestMetadata("jvmName.kt") + public void testJvmName() throws Exception { + runTest("idea/idea-frontend-fir/testData/symbols/symbolByPsi/jvmName.kt"); + } + @Test @TestMetadata("localDeclarations.kt") public void testLocalDeclarations() throws Exception {