diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java index ed9c79792b1..f7c022e45bb 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java @@ -226,6 +226,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated extends A runTest("analysis/analysis-api/testData/symbols/symbolByPsi/propertyWithAnnotations.kt"); } + @Test + @TestMetadata("receiverAnnotation.kt") + public void testReceiverAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt"); + } + @Test @TestMetadata("topLevelFunctions.kt") public void testTopLevelFunctions() throws Exception { diff --git a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index ae860df00d6..3ad5f6fe20c 100644 --- a/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-fe10/tests-gen/org/jetbrains/kotlin/analysis/api/fe10/test/cases/generated/cases/symbols/Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -64,6 +64,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext runTest("analysis/analysis-api/testData/symbols/symbolByReference/explicitLambdaParameter.kt"); } + @Test + @TestMetadata("functionReceiverParameter.kt") + public void testFunctionReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt"); + } + @Test @TestMetadata("genericFromFunctionInLocalClass.kt") public void testGenericFromFunctionInLocalClass() throws Exception { @@ -82,6 +88,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt"); } + @Test + @TestMetadata("propertyReceiverParameter.kt") + public void testPropertyReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt"); + } + @Test @TestMetadata("samConstructor.kt") public void testSamConstructor() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java index 3b78170e156..12e0524f64a 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java @@ -226,6 +226,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByPsiTestGenerated extends Ab runTest("analysis/analysis-api/testData/symbols/symbolByPsi/propertyWithAnnotations.kt"); } + @Test + @TestMetadata("receiverAnnotation.kt") + public void testReceiverAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt"); + } + @Test @TestMetadata("topLevelFunctions.kt") public void testTopLevelFunctions() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index 2eeb28f6b4d..c38a25b6a86 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/symbols/FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -64,6 +64,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte runTest("analysis/analysis-api/testData/symbols/symbolByReference/explicitLambdaParameter.kt"); } + @Test + @TestMetadata("functionReceiverParameter.kt") + public void testFunctionReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt"); + } + @Test @TestMetadata("genericFromFunctionInLocalClass.kt") public void testGenericFromFunctionInLocalClass() throws Exception { @@ -82,6 +88,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt"); } + @Test + @TestMetadata("propertyReceiverParameter.kt") + public void testPropertyReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt"); + } + @Test @TestMetadata("samConstructor.kt") public void testSamConstructor() throws Exception { diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractSymbolTest.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractSymbolTest.kt index a2ab4d798db..d887fa68037 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractSymbolTest.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/symbols/AbstractSymbolTest.kt @@ -10,10 +10,7 @@ import org.jetbrains.kotlin.analysis.api.components.KtDeclarationRendererOptions import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.SymbolTestDirectives.DO_NOT_CHECK_SYMBOL_RESTORE import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.SymbolTestDirectives.DO_NOT_CHECK_SYMBOL_RESTORE_K1 import org.jetbrains.kotlin.analysis.api.impl.base.test.cases.symbols.SymbolTestDirectives.DO_NOT_CHECK_SYMBOL_RESTORE_K2 -import org.jetbrains.kotlin.analysis.api.symbols.DebugSymbolRenderer -import org.jetbrains.kotlin.analysis.api.symbols.KtDeclarationSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtFileSymbol -import org.jetbrains.kotlin.analysis.api.symbols.KtSymbol +import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiSingleFileTest import org.jetbrains.kotlin.analysis.test.framework.test.configurators.FrontendKind @@ -80,6 +77,7 @@ abstract class AbstractSymbolTest : AbstractAnalysisApiSingleFileTest() { } } + is KtReceiverParameterSymbol -> DebugSymbolRenderer.render(symbol) else -> error(symbol::class.toString()) } ) diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java index 509cec16f59..1cdc3b3be9f 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByPsiTestGenerated.java @@ -226,6 +226,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByPsiTestGenerated ext runTest("analysis/analysis-api/testData/symbols/symbolByPsi/propertyWithAnnotations.kt"); } + @Test + @TestMetadata("receiverAnnotation.kt") + public void testReceiverAnnotation() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt"); + } + @Test @TestMetadata("topLevelFunctions.kt") public void testTopLevelFunctions() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java index 55e04856760..25b9c389f5c 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/symbols/FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerated.java @@ -64,6 +64,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat runTest("analysis/analysis-api/testData/symbols/symbolByReference/explicitLambdaParameter.kt"); } + @Test + @TestMetadata("functionReceiverParameter.kt") + public void testFunctionReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt"); + } + @Test @TestMetadata("genericFromFunctionInLocalClass.kt") public void testGenericFromFunctionInLocalClass() throws Exception { @@ -82,6 +88,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat runTest("analysis/analysis-api/testData/symbols/symbolByReference/implicitLambdaParameter.kt"); } + @Test + @TestMetadata("propertyReceiverParameter.kt") + public void testPropertyReceiverParameter() throws Exception { + runTest("analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt"); + } + @Test @TestMetadata("samConstructor.kt") public void testSamConstructor() throws Exception { diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.pretty.txt new file mode 100644 index 00000000000..1f7ee2e0a45 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.pretty.txt @@ -0,0 +1,8 @@ +fun (@ReceiverTypeAnnotation kotlin.Int).foo() + +val (@ReceiverTypeAnnotation kotlin.Long).prop: kotlin.Boolean + +annotation class ReceiverAnnotation + +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class ReceiverTypeAnnotation \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.txt new file mode 100644 index 00000000000..590f0d1ad28 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.descriptors.txt @@ -0,0 +1,157 @@ +KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: ReceiverAnnotation + classKind: ANNOTATION_CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: ReceiverAnnotation + origin: SOURCE + superTypes: [ + kotlin/Annotation + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtNamedClassOrObjectSymbol: + annotationsList: [ + kotlin/annotation/Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) + psi: KtAnnotationEntry + ] + classIdIfNonLocal: ReceiverTypeAnnotation + classKind: ANNOTATION_CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: ReceiverTypeAnnotation + origin: SOURCE + superTypes: [ + kotlin/Annotation + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: /foo + contextReceivers: [] + hasStableParameterNames: true + isBuiltinFunctionInvoke: false + isExtension: true + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: foo + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Int + returnType: kotlin/Unit + symbolKind: TOP_LEVEL + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtKotlinPropertySymbol: + annotationsList: [] + callableIdIfNonLocal: /prop + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isConst: false + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: prop + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + setter: null + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getProp + javaSetterName: null + setterDeprecationStatus: null \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt new file mode 100644 index 00000000000..73144778dc5 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.kt @@ -0,0 +1,7 @@ +annotation class ReceiverAnnotation +@Target(AnnotationTarget.TYPE) +annotation class ReceiverTypeAnnotation + +fun @receiver:ReceiverAnnotation @ReceiverTypeAnnotation Int.foo() {} + +val @receiver:ReceiverAnnotation @ReceiverTypeAnnotation Long.prop: Boolean get() = true diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.pretty.txt new file mode 100644 index 00000000000..53fe3dbae5a --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.pretty.txt @@ -0,0 +1,8 @@ +fun @ReceiverAnnotation @ReceiverTypeAnnotation kotlin.Int.foo() + +val @ReceiverAnnotation @ReceiverTypeAnnotation kotlin.Long.prop: kotlin.Boolean + +annotation class ReceiverAnnotation + +@kotlin.annotation.Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) +annotation class ReceiverTypeAnnotation \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.txt b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.txt new file mode 100644 index 00000000000..8c6e496a874 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByPsi/receiverAnnotation.txt @@ -0,0 +1,165 @@ +KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: ReceiverAnnotation + classKind: ANNOTATION_CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: ReceiverAnnotation + origin: SOURCE + superTypes: [ + kotlin/Annotation + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtNamedClassOrObjectSymbol: + annotationsList: [ + kotlin/annotation/Target(allowedTargets = [kotlin.annotation.AnnotationTarget.TYPE]) + psi: KtAnnotationEntry + ] + classIdIfNonLocal: ReceiverTypeAnnotation + classKind: ANNOTATION_CLASS + companionObject: null + contextReceivers: [] + isData: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: ReceiverTypeAnnotation + origin: SOURCE + superTypes: [ + kotlin/Annotation + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: /foo + contextReceivers: [] + hasStableParameterNames: true + isBuiltinFunctionInvoke: false + isExtension: true + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: foo + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Int + returnType: kotlin/Unit + symbolKind: TOP_LEVEL + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + +KtKotlinPropertySymbol: + annotationsList: [] + callableIdIfNonLocal: /prop + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isConst: false + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: prop + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + setter: null + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getProp + javaSetterName: null + setterDeprecationStatus: null \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.pretty.txt new file mode 100644 index 00000000000..e0a354dd0c8 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.pretty.txt @@ -0,0 +1 @@ +fun (@ReceiverTypeAnnotation kotlin.Int).foo() \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.txt b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.txt new file mode 100644 index 00000000000..1e3569c71a9 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.descriptors.txt @@ -0,0 +1,28 @@ +KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: /foo + contextReceivers: [] + hasStableParameterNames: true + isBuiltinFunctionInvoke: false + isExtension: true + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: foo + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Int + returnType: kotlin/Unit + symbolKind: TOP_LEVEL + typeParameters: [] + valueParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt new file mode 100644 index 00000000000..72ebcf18bc7 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.kt @@ -0,0 +1,9 @@ +// DO_NOT_CHECK_SYMBOL_RESTORE_K2 + +annotation class ReceiverAnnotation +@Target(AnnotationTarget.TYPE) +annotation class ReceiverTypeAnnotation + +fun @receiver:ReceiverAnnotation @ReceiverTypeAnnotation Int.foo() { + this +} diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.pretty.txt new file mode 100644 index 00000000000..60e80e7ba77 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.pretty.txt @@ -0,0 +1,9 @@ +KtReceiverParameterSymbol: + origin: SOURCE + owningCallableSymbol: KtFunctionSymbol(/foo) + type: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Int \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.txt b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.txt new file mode 100644 index 00000000000..aa97e7c5a48 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/functionReceiverParameter.txt @@ -0,0 +1,12 @@ +KtReceiverParameterSymbol: + origin: SOURCE + owningCallableSymbol: KtFunctionSymbol(/foo) + type: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Int + getContainingModule: Could not render due to java.lang.IllegalArgumentException: Failed requirement. + + deprecationStatus: Could not render due to java.lang.IllegalArgumentException: Failed requirement. diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.pretty.txt new file mode 100644 index 00000000000..083096b703b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.pretty.txt @@ -0,0 +1 @@ +val (@ReceiverTypeAnnotation kotlin.Long).prop: kotlin.Boolean \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.txt b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.txt new file mode 100644 index 00000000000..bb10428d73b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.descriptors.txt @@ -0,0 +1,55 @@ +KtKotlinPropertySymbol: + annotationsList: [] + callableIdIfNonLocal: /prop + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isConst: false + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: prop + origin: SOURCE + receiverType: [ + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + setter: null + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + getContainingModule: KtSourceModule "Sources of main" + deprecationStatus: null + getterDeprecationStatus: null + javaGetterName: getProp + javaSetterName: null + setterDeprecationStatus: null \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt new file mode 100644 index 00000000000..7787745512b --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.kt @@ -0,0 +1,7 @@ +annotation class ReceiverAnnotation +@Target(AnnotationTarget.TYPE) +annotation class ReceiverTypeAnnotation + +val @receiver:ReceiverAnnotation @ReceiverTypeAnnotation Long.prop: Boolean get() = { this == 1 } + +// DO_NOT_CHECK_SYMBOL_RESTORE_K2 \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.pretty.txt b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.pretty.txt new file mode 100644 index 00000000000..40e84341a38 --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.pretty.txt @@ -0,0 +1,61 @@ +KtReceiverParameterSymbol: + origin: SOURCE + owningCallableSymbol: KtKotlinPropertySymbol: + annotationsList: [] + callableIdIfNonLocal: /prop + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isConst: false + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: prop + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + setter: null + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + type: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long \ No newline at end of file diff --git a/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.txt b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.txt new file mode 100644 index 00000000000..f75b83b0fce --- /dev/null +++ b/analysis/analysis-api/testData/symbols/symbolByReference/propertyReceiverParameter.txt @@ -0,0 +1,64 @@ +KtReceiverParameterSymbol: + origin: SOURCE + owningCallableSymbol: KtKotlinPropertySymbol: + annotationsList: [] + callableIdIfNonLocal: /prop + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isConst: false + isDelegatedProperty: false + isExtension: true + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: prop + origin: SOURCE + receiverType: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + returnType: kotlin/Boolean + setter: null + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + type: [ + ReceiverAnnotation() + psi: KtAnnotationEntry + ReceiverTypeAnnotation() + psi: KtAnnotationEntry + ] @RECEIVER:R|ReceiverAnnotation|() @R|ReceiverTypeAnnotation|() kotlin/Long + getContainingModule: Could not render due to java.lang.IllegalArgumentException: Failed requirement. + + deprecationStatus: Could not render due to java.lang.IllegalArgumentException: Failed requirement.