From 4a2f11b2f50c57b2374f629dfbd91071cf411e65 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 13 Dec 2023 01:43:32 +0900 Subject: [PATCH] Revert "Revert "KT-61890 [AA] Use `ContextCollector` in `KtFirScopeProvider`"" This reverts commit 644e29a2ea57c76f5854a9a7222980fedbc54ad8. --- .../api/fir/components/KtFirScopeProvider.kt | 21 +- ...eScopeContextForPositionTestGenerated.java | 42 ++ ...eScopeContextForPositionTestGenerated.java | 42 ++ ...eScopeContextForPositionTestGenerated.java | 42 ++ .../classPropertyDelegate.kt | 12 + .../classPropertyDelegate.pretty.txt | 56 ++ .../classPropertyDelegate.txt | 671 ++++++++++++++++++ .../classPropertyInitializer.kt | 12 + .../classPropertyInitializer.pretty.txt | 55 ++ .../classPropertyInitializer.txt | 671 ++++++++++++++++++ .../contextReceiverWithoutDeclaration.kt | 2 +- ...mptyContextForPositionInImportDirective.kt | 1 - ...extForPositionInImportDirective.pretty.txt | 30 + ...ptyContextForPositionInImportDirective.txt | 42 ++ ...ptyContextForPositionInPackageDirective.kt | 1 - ...xtForPositionInPackageDirective.pretty.txt | 24 + ...tyContextForPositionInPackageDirective.txt | 24 + .../errorType.pretty.txt | 22 +- .../scopeContextForPosition/errorType.txt | 22 +- .../forLoopVariable.pretty.txt | 3 +- .../forLoopVariable.txt | 17 +- .../kDocWithoutDeclaration.kt | 2 +- .../simpleScopeContextForPosition.pretty.txt | 62 +- .../simpleScopeContextForPosition.txt | 52 +- .../smartCastInAnonymousFunction.pretty.txt | 22 +- .../smartCastInAnonymousFunction.txt | 22 +- .../superTypeConstructor.kt | 11 + .../superTypeConstructor.pretty.txt | 35 + .../superTypeConstructor.txt | 83 +++ .../superTypeConstructor_lambda.kt | 15 + .../superTypeConstructor_lambda.pretty.txt | 62 ++ .../superTypeConstructor_lambda.txt | 289 ++++++++ .../superTypeConstructor_nestedClasses.kt | 12 + ...erTypeConstructor_nestedClasses.pretty.txt | 44 ++ .../superTypeConstructor_nestedClasses.txt | 164 +++++ ...eConstructor_nestedClasses_typeArgument.kt | 12 + ...ctor_nestedClasses_typeArgument.pretty.txt | 30 + ...Constructor_nestedClasses_typeArgument.txt | 109 +++ .../superTypeDelegate.kt | 11 + .../superTypeDelegate.pretty.txt | 36 + .../superTypeDelegate.txt | 103 +++ 41 files changed, 2881 insertions(+), 107 deletions(-) create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.pretty.txt create mode 100644 analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.txt diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt index 6ceb16f857a..6bc12dd0472 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirScopeProvider.kt @@ -23,13 +23,16 @@ import org.jetbrains.kotlin.analysis.api.symbols.markers.KtSymbolWithMembers import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.analysis.low.level.api.fir.api.LLFirResolveSession import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile +import org.jetbrains.kotlin.analysis.low.level.api.fir.util.ContextCollector import org.jetbrains.kotlin.analysis.utils.errors.unexpectedElementError +import org.jetbrains.kotlin.analysis.utils.printer.parentOfType import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.utils.delegateFields import org.jetbrains.kotlin.fir.java.JavaScopeProvider import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertiesScope import org.jetbrains.kotlin.fir.resolve.scope import org.jetbrains.kotlin.fir.resolve.scopeSessionKey @@ -38,6 +41,7 @@ import org.jetbrains.kotlin.fir.scopes.impl.* import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhaseWithCallableMembers import org.jetbrains.kotlin.fir.types.ConeKotlinType +import org.jetbrains.kotlin.kdoc.psi.api.KDoc import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtElement @@ -252,9 +256,22 @@ internal class KtFirScopeProvider( originalFile: KtFile, positionInFakeFile: KtElement ): KtScopeContext { + val fakeFile = positionInFakeFile.containingKtFile + + // If the position is in KDoc, we want to pass the owning declaration to the ContextCollector. + // That way, the resulting scope will contain all the nested declarations which can be references by KDoc. + val parentKDoc = positionInFakeFile.parentOfType() + val correctedPosition = parentKDoc?.owner ?: positionInFakeFile + + val context = ContextCollector.process( + fakeFile.getOrBuildFirFile(firResolveSession), + SessionHolderImpl(analysisSession.useSiteSession, getScopeSession()), + correctedPosition, + ) + val towerDataContext = - analysisSession.firResolveSession.getTowerContextProvider(originalFile).getClosestAvailableParentContext(positionInFakeFile) - ?: errorWithAttachment("Cannot find enclosing declaration for ${positionInFakeFile::class}") { + context?.towerDataContext + ?: errorWithAttachment("Cannot find context for ${positionInFakeFile::class}") { withPsiEntry("positionInFakeFile", positionInFakeFile) } val towerDataElementsIndexed = towerDataContext.towerDataElements.asReversed().withIndex() diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGenerated.java index cffe5edfa5e..b865e6cbf3a 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGenerated.java @@ -52,6 +52,18 @@ public class FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGener runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/annotationWithoutDeclaration.kt"); } + @Test + @TestMetadata("classPropertyDelegate.kt") + public void testClassPropertyDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt"); + } + + @Test + @TestMetadata("classPropertyInitializer.kt") + public void testClassPropertyInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt"); + } + @Test @TestMetadata("contextReceiver.kt") public void testContextReceiver() throws Exception { @@ -148,6 +160,36 @@ public class FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGener runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInWhenEntryCondition.kt"); } + @Test + @TestMetadata("superTypeConstructor.kt") + public void testSuperTypeConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_lambda.kt") + public void testSuperTypeConstructor_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses.kt") + public void testSuperTypeConstructor_nestedClasses() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses_typeArgument.kt") + public void testSuperTypeConstructor_nestedClasses_typeArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt"); + } + + @Test + @TestMetadata("superTypeDelegate.kt") + public void testSuperTypeDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt"); + } + @Test @TestMetadata("syntheticPropertiesScope.kt") public void testSyntheticPropertiesScope() throws Exception { diff --git a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java index 6f4f30d9a7f..986a7bef672 100644 --- a/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java +++ b/analysis/analysis-api-fir/tests-gen/org/jetbrains/kotlin/analysis/api/fir/test/cases/generated/cases/components/scopeProvider/FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java @@ -52,6 +52,18 @@ public class FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerate runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/annotationWithoutDeclaration.kt"); } + @Test + @TestMetadata("classPropertyDelegate.kt") + public void testClassPropertyDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt"); + } + + @Test + @TestMetadata("classPropertyInitializer.kt") + public void testClassPropertyInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt"); + } + @Test @TestMetadata("contextReceiver.kt") public void testContextReceiver() throws Exception { @@ -148,6 +160,36 @@ public class FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerate runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInWhenEntryCondition.kt"); } + @Test + @TestMetadata("superTypeConstructor.kt") + public void testSuperTypeConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_lambda.kt") + public void testSuperTypeConstructor_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses.kt") + public void testSuperTypeConstructor_nestedClasses() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses_typeArgument.kt") + public void testSuperTypeConstructor_nestedClasses_typeArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt"); + } + + @Test + @TestMetadata("superTypeDelegate.kt") + public void testSuperTypeDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt"); + } + @Test @TestMetadata("syntheticPropertiesScope.kt") public void testSyntheticPropertiesScope() throws Exception { diff --git a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java index 084a3272891..501e545eb19 100644 --- a/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java +++ b/analysis/analysis-api-standalone/tests-gen/org/jetbrains/kotlin/analysis/api/standalone/fir/test/cases/generated/cases/components/scopeProvider/FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestGenerated.java @@ -52,6 +52,18 @@ public class FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestG runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/annotationWithoutDeclaration.kt"); } + @Test + @TestMetadata("classPropertyDelegate.kt") + public void testClassPropertyDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt"); + } + + @Test + @TestMetadata("classPropertyInitializer.kt") + public void testClassPropertyInitializer() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt"); + } + @Test @TestMetadata("contextReceiver.kt") public void testContextReceiver() throws Exception { @@ -148,6 +160,36 @@ public class FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestG runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInWhenEntryCondition.kt"); } + @Test + @TestMetadata("superTypeConstructor.kt") + public void testSuperTypeConstructor() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_lambda.kt") + public void testSuperTypeConstructor_lambda() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses.kt") + public void testSuperTypeConstructor_nestedClasses() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt"); + } + + @Test + @TestMetadata("superTypeConstructor_nestedClasses_typeArgument.kt") + public void testSuperTypeConstructor_nestedClasses_typeArgument() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt"); + } + + @Test + @TestMetadata("superTypeDelegate.kt") + public void testSuperTypeDelegate() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt"); + } + @Test @TestMetadata("syntheticPropertiesScope.kt") public void testSyntheticPropertiesScope() throws Exception { diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt new file mode 100644 index 00000000000..54f44a8064d --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.kt @@ -0,0 +1,12 @@ +package test + +open class Base(val value: Int) { + fun baseMember(): Int = value + val baseProp: Int = value +} + +class Child(val constructorProp: Int, constructorParam: Int) : Base(10) { + fun childMember(): Int = value + + val childProp: Int by ::value +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.pretty.txt new file mode 100644 index 00000000000..0774fd758db --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.pretty.txt @@ -0,0 +1,56 @@ +element: ::value +implicit receivers: + type: test.Child + owner symbol: KtFirNamedClassOrObjectSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + constructorParam: kotlin.Int + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 9 + val constructorProp: kotlin.Int + fun childMember(): kotlin.Int + val childProp: kotlin.Int + get() + val value: kotlin.Int + fun baseMember(): kotlin.Int + val baseProp: kotlin.Int + fun equals(other: kotlin.Any?): kotlin.Boolean + fun hashCode(): kotlin.Int + fun toString(): kotlin.String + constructors: 1 + constructor(constructorProp: kotlin.Int, constructorParam: kotlin.Int) + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 2 + class Base(value: kotlin.Int) + class Child(constructorProp: kotlin.Int, constructorParam: kotlin.Int) : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.txt new file mode 100644 index 00000000000..8a668948d31 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyDelegate.txt @@ -0,0 +1,671 @@ +element: ::value +implicit receivers: + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Child + owner symbol: KtFirNamedClassOrObjectSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorParam + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 9 + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.constructorProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.constructorProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val constructorProp: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: test/Child.childMember + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: childMember + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.childProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.childProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: true + hasStableParameterNames: true + isDefault: false + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: false + hasGetter: true + hasSetter: false + initializer: null + isActual: false + isConst: false + isDelegatedProperty: true + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: childProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Base.value) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Base.value + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val value: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: value + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: test/Base.baseMember + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: baseMember + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Base.baseProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Base.baseProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(value) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: baseProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.equals + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: true + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: equals + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Boolean + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: other + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any? + symbolKind: LOCAL + typeParameters: [] + ] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.hashCode + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: hashCode + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.toString + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: toString + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + constructors: 1 + KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: test/Child + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Child + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.constructorProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.constructorProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val constructorProp: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorParam + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + ] + visibility: Public + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 2 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt new file mode 100644 index 00000000000..6e0ea7e6639 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.kt @@ -0,0 +1,12 @@ +package test + +open class Base(val value: Int) { + fun baseMember(): Int = value + val baseProp: Int = value +} + +class Child(val constructorProp: Int, constructorParam: Int) : Base(10) { + fun childMember(): Int = value + + val childProp: Int = value +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.pretty.txt new file mode 100644 index 00000000000..e6e003cfb5a --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.pretty.txt @@ -0,0 +1,55 @@ +element: value +implicit receivers: + type: test.Child + owner symbol: KtFirNamedClassOrObjectSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + constructorParam: kotlin.Int + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 9 + val constructorProp: kotlin.Int + fun childMember(): kotlin.Int + val childProp: kotlin.Int + val value: kotlin.Int + fun baseMember(): kotlin.Int + val baseProp: kotlin.Int + fun equals(other: kotlin.Any?): kotlin.Boolean + fun hashCode(): kotlin.Int + fun toString(): kotlin.String + constructors: 1 + constructor(constructorProp: kotlin.Int, constructorParam: kotlin.Int) + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 2 + class Base(value: kotlin.Int) + class Child(constructorProp: kotlin.Int, constructorParam: kotlin.Int) : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.txt new file mode 100644 index 00000000000..280ad78cc84 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/classPropertyInitializer.txt @@ -0,0 +1,671 @@ +element: value +implicit receivers: + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Child + owner symbol: KtFirNamedClassOrObjectSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorParam + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 9 + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.constructorProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.constructorProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val constructorProp: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: test/Child.childMember + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: childMember + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.childProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.childProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(value) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: childProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Base.value) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Base.value + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val value: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: value + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: test/Base.baseMember + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: baseMember + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Base.baseProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Base.baseProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(value) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: false + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: baseProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.equals + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: true + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: equals + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Boolean + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: other + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any? + symbolKind: LOCAL + typeParameters: [] + ] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.hashCode + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: hashCode + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.toString + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: toString + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + constructors: 1 + KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: test/Child + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Child + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: KtKotlinPropertySymbol: + annotationsList: [] + backingFieldSymbol: KtBackingFieldSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + isExtension: false + name: field + origin: PROPERTY_BACKING_FIELD + owningProperty: KtKotlinPropertySymbol(test/Child.constructorProp) + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + callableIdIfNonLocal: test/Child.constructorProp + contextReceivers: [] + getter: KtPropertyGetterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + hasBody: false + hasStableParameterNames: true + isDefault: true + isExtension: false + isInline: false + isOverride: false + modality: FINAL + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: ACCESSOR + typeParameters: [] + valueParameters: [] + visibility: Public + hasBackingField: true + hasGetter: true + hasSetter: false + initializer: KtNonConstantInitializerValue(val constructorProp: Int) + isActual: false + isConst: false + isDelegatedProperty: false + isExpect: false + isExtension: false + isFromPrimaryConstructor: true + isLateInit: false + isOverride: false + isStatic: false + isVal: true + modality: FINAL + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + setter: null + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorProp + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: constructorParam + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: LOCAL + typeParameters: [] + ] + visibility: Public + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 2 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiverWithoutDeclaration.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiverWithoutDeclaration.kt index 2c6eb15ca86..38cb444a2c0 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiverWithoutDeclaration.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/contextReceiverWithoutDeclaration.kt @@ -1,4 +1,4 @@ -// IGNORE_FIR + // FILE: main.kt import pkg.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.kt index f134a83f059..6402ecdd6e3 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.kt @@ -1,2 +1 @@ -// IGNORE_FIR import a.b.c.e diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.pretty.txt index 86ccc71a87c..a796cb47180 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.pretty.txt @@ -1,3 +1,33 @@ element: e implicit receivers: scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 6 + META-INF + java + javax + kotlin + org + sun + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.txt index 86ccc71a87c..65553da9685 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInImportDirective.txt @@ -1,3 +1,45 @@ element: e implicit receivers: scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 6 + KtPackageSymbol: + fqName: META-INF + origin: SOURCE + KtPackageSymbol: + fqName: java + origin: SOURCE + KtPackageSymbol: + fqName: javax + origin: SOURCE + KtPackageSymbol: + fqName: kotlin + origin: SOURCE + KtPackageSymbol: + fqName: org + origin: SOURCE + KtPackageSymbol: + fqName: sun + origin: SOURCE + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.kt index 65f7224ddc5..ba9930dd202 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.kt @@ -1,2 +1 @@ -// IGNORE_FIR package a.b.c.e diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.pretty.txt index 86ccc71a87c..d9a5809983e 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.pretty.txt @@ -1,3 +1,27 @@ element: e implicit receivers: scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.txt index 86ccc71a87c..d9a5809983e 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/emptyContextForPositionInPackageDirective.txt @@ -1,3 +1,27 @@ element: e implicit receivers: scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt index b7f0af13623..961af8f23aa 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt @@ -4,13 +4,13 @@ implicit receivers: owner symbol: KtFirAnonymousFunctionSymbol scopes: - TypeScope, index = 0 + LocalScope, index = 0 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 1 + TypeScope, index = 1 packages: 0 classifiers: 0 callables: 0 @@ -28,13 +28,19 @@ scopes: callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 4 + LocalScope, index = 4 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 5 + ExplicitSimpleImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 6 packages: 6 META-INF java @@ -47,15 +53,15 @@ scopes: fun test() constructors: 0 - DefaultSimpleImportingScope, index = 6 - DefaultSimpleImportingScope, index = 7 - ExplicitStarImportingScope, index = 8 + DefaultSimpleImportingScope, index = 8 + + ExplicitStarImportingScope, index = 9 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 9 + DefaultStarImportingScope, index = 10 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt index f3d1fe96d30..10ca8a4235f 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt @@ -6,13 +6,13 @@ implicit receivers: owner symbol: KtFirAnonymousFunctionSymbol scopes: - TypeScope, index = 0 + LocalScope, index = 0 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 1 + TypeScope, index = 1 packages: 0 classifiers: 0 callables: 0 @@ -30,13 +30,19 @@ scopes: callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 4 + LocalScope, index = 4 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 5 + ExplicitSimpleImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 6 packages: 6 KtPackageSymbol: fqName: META-INF @@ -89,15 +95,15 @@ scopes: visibility: Public constructors: 0 - DefaultSimpleImportingScope, index = 6 - DefaultSimpleImportingScope, index = 7 - ExplicitStarImportingScope, index = 8 + DefaultSimpleImportingScope, index = 8 + + ExplicitStarImportingScope, index = 9 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 9 + DefaultStarImportingScope, index = 10 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.pretty.txt index badcbc7f6dc..b9f096bbd3a 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.pretty.txt @@ -4,8 +4,7 @@ scopes: LocalScope, index = 0 packages: 0 classifiers: 0 - callables: 1 - val loopVar: kotlin.Int + callables: 0 constructors: 0 LocalScope, index = 1 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.txt index 6c07d7a6f7f..16c1f26f424 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/forLoopVariable.txt @@ -4,22 +4,7 @@ scopes: LocalScope, index = 0 packages: 0 classifiers: 0 - callables: 1 - KtLocalVariableSymbol: - annotationsList: [] - callableIdIfNonLocal: null - contextReceivers: [] - isExtension: false - isVal: true - name: loopVar - origin: SOURCE - receiverParameter: null - returnType: KtUsualClassType: - annotationsList: [] - ownTypeArguments: [] - type: kotlin/Int - symbolKind: LOCAL - typeParameters: [] + callables: 0 constructors: 0 LocalScope, index = 1 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/kDocWithoutDeclaration.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/kDocWithoutDeclaration.kt index 507854e19af..f7f45dafd34 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/kDocWithoutDeclaration.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/kDocWithoutDeclaration.kt @@ -1,4 +1,4 @@ -// IGNORE_FIR + // FILE: main.kt import pkg.A diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt index a8f7f6fd873..cc1a07e5e1a 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.pretty.txt @@ -10,7 +10,13 @@ implicit receivers: owner symbol: KtFirNamedClassOrObjectSymbol scopes: - TypeScope, index = 0 + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 1 packages: 0 classifiers: 0 callables: 4 @@ -21,19 +27,19 @@ scopes: constructors: 1 constructor() - LocalScope, index = 1 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - LocalScope, index = 2 packages: 0 classifiers: 0 callables: 0 constructors: 0 - TypeScope, index = 3 + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 4 packages: 0 classifiers: 0 callables: 4 @@ -44,27 +50,27 @@ scopes: constructors: 1 constructor() - LocalScope, index = 4 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - LocalScope, index = 5 packages: 0 classifiers: 0 - callables: 1 - val localVarA: kotlin.Int + callables: 0 constructors: 0 LocalScope, index = 6 packages: 0 classifiers: 0 callables: 1 - lambdaArg: kotlin.String + val localVarA: kotlin.Int constructors: 0 LocalScope, index = 7 + packages: 0 + classifiers: 0 + callables: 1 + lambdaArg: kotlin.String + constructors: 0 + + LocalScope, index = 8 packages: 0 classifiers: 0 callables: 2 @@ -72,21 +78,21 @@ scopes: fun localFunB() constructors: 0 - LocalScope, index = 8 + LocalScope, index = 9 packages: 0 classifiers: 0 callables: 1 param: kotlin.String? constructors: 0 - TypeParameterScope, index = 9 + TypeParameterScope, index = 10 packages: 0 classifiers: 1 T callables: 0 constructors: 0 - TypeScope, index = 10 + TypeScope, index = 11 packages: 0 classifiers: 2 class NestedInC @@ -99,27 +105,27 @@ scopes: constructors: 1 constructor() - StaticMemberScope, index = 11 + StaticMemberScope, index = 12 packages: 0 classifiers: 1 class NestedInC callables: 0 constructors: 0 - StaticMemberScope, index = 12 + StaticMemberScope, index = 13 packages: 0 classifiers: 1 class NestedInJavaClass callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 13 + ExplicitSimpleImportingScope, index = 14 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 14 + PackageMemberScope, index = 15 packages: 6 META-INF java @@ -138,15 +144,15 @@ scopes: fun topLevel(): kotlin.Int constructors: 0 - DefaultSimpleImportingScope, index = 15 - DefaultSimpleImportingScope, index = 16 - ExplicitStarImportingScope, index = 17 + DefaultSimpleImportingScope, index = 17 + + ExplicitStarImportingScope, index = 18 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 18 + DefaultStarImportingScope, index = 19 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt index b9bbc441ad9..3f268aabf7a 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.txt @@ -19,7 +19,13 @@ implicit receivers: owner symbol: KtFirNamedClassOrObjectSymbol scopes: - TypeScope, index = 0 + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 1 packages: 0 classifiers: 0 callables: 4 @@ -182,19 +188,19 @@ scopes: valueParameters: [] visibility: Public - LocalScope, index = 1 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - LocalScope, index = 2 packages: 0 classifiers: 0 callables: 0 constructors: 0 - TypeScope, index = 3 + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 4 packages: 0 classifiers: 0 callables: 4 @@ -357,13 +363,13 @@ scopes: valueParameters: [] visibility: Public - LocalScope, index = 4 + LocalScope, index = 5 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 5 + LocalScope, index = 6 packages: 0 classifiers: 0 callables: 1 @@ -384,7 +390,7 @@ scopes: typeParameters: [] constructors: 0 - LocalScope, index = 6 + LocalScope, index = 7 packages: 0 classifiers: 0 callables: 1 @@ -410,7 +416,7 @@ scopes: typeParameters: [] constructors: 0 - LocalScope, index = 7 + LocalScope, index = 8 packages: 0 classifiers: 0 callables: 2 @@ -460,7 +466,7 @@ scopes: visibility: Local constructors: 0 - LocalScope, index = 8 + LocalScope, index = 9 packages: 0 classifiers: 0 callables: 1 @@ -486,7 +492,7 @@ scopes: typeParameters: [] constructors: 0 - TypeParameterScope, index = 9 + TypeParameterScope, index = 10 packages: 0 classifiers: 1 KtTypeParameterSymbol: @@ -500,7 +506,7 @@ scopes: callables: 0 constructors: 0 - TypeScope, index = 10 + TypeScope, index = 11 packages: 0 classifiers: 2 KtNamedClassOrObjectSymbol: @@ -736,7 +742,7 @@ scopes: valueParameters: [] visibility: Public - StaticMemberScope, index = 11 + StaticMemberScope, index = 12 packages: 0 classifiers: 1 KtNamedClassOrObjectSymbol: @@ -767,7 +773,7 @@ scopes: callables: 0 constructors: 0 - StaticMemberScope, index = 12 + StaticMemberScope, index = 13 packages: 0 classifiers: 1 KtNamedClassOrObjectSymbol: @@ -798,13 +804,13 @@ scopes: callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 13 + ExplicitSimpleImportingScope, index = 14 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 14 + PackageMemberScope, index = 15 packages: 6 KtPackageSymbol: fqName: META-INF @@ -1109,15 +1115,15 @@ scopes: visibility: Public constructors: 0 - DefaultSimpleImportingScope, index = 15 - DefaultSimpleImportingScope, index = 16 - ExplicitStarImportingScope, index = 17 + DefaultSimpleImportingScope, index = 17 + + ExplicitStarImportingScope, index = 18 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 18 + DefaultStarImportingScope, index = 19 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt index a8cd50408a0..14518bef875 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt @@ -22,7 +22,13 @@ scopes: callables: 0 constructors: 0 - TypeScope, index = 3 + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 4 packages: 0 classifiers: 0 callables: 3 @@ -32,19 +38,19 @@ scopes: constructors: 1 constructor() - LocalScope, index = 4 + LocalScope, index = 5 packages: 0 classifiers: 0 callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 5 + ExplicitSimpleImportingScope, index = 6 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 6 + PackageMemberScope, index = 7 packages: 6 META-INF java @@ -58,15 +64,15 @@ scopes: fun kotlin.Any.test(): () -> kotlin.Int constructors: 0 - DefaultSimpleImportingScope, index = 7 - DefaultSimpleImportingScope, index = 8 - ExplicitStarImportingScope, index = 9 + DefaultSimpleImportingScope, index = 9 + + ExplicitStarImportingScope, index = 10 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 10 + DefaultStarImportingScope, index = 11 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.txt index ff3ff36a9c7..381e81e08c7 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.txt @@ -25,7 +25,13 @@ scopes: callables: 0 constructors: 0 - TypeScope, index = 3 + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 4 packages: 0 classifiers: 0 callables: 3 @@ -159,19 +165,19 @@ scopes: valueParameters: [] visibility: Public - LocalScope, index = 4 + LocalScope, index = 5 packages: 0 classifiers: 0 callables: 0 constructors: 0 - ExplicitSimpleImportingScope, index = 5 + ExplicitSimpleImportingScope, index = 6 packages: 0 classifiers: 0 callables: 0 constructors: 0 - PackageMemberScope, index = 6 + PackageMemberScope, index = 7 packages: 6 KtPackageSymbol: fqName: META-INF @@ -261,15 +267,15 @@ scopes: visibility: Public constructors: 0 - DefaultSimpleImportingScope, index = 7 - DefaultSimpleImportingScope, index = 8 - ExplicitStarImportingScope, index = 9 + DefaultSimpleImportingScope, index = 9 + + ExplicitStarImportingScope, index = 10 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultStarImportingScope, index = 10 + DefaultStarImportingScope, index = 11 diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt new file mode 100644 index 00000000000..673608202ce --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.kt @@ -0,0 +1,11 @@ +package test + +open class Base(val value: Int) { + fun baseMember(): Int = value + val baseProp: Int = value +} + +class Child : Base(10) { + fun childMember(): Int = value + val childProp: Int = value +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.pretty.txt new file mode 100644 index 00000000000..f866919d77a --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.pretty.txt @@ -0,0 +1,35 @@ +element: 10 +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 2 + packages: 0 + classifiers: 2 + class Base(value: kotlin.Int) + class Child : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 3 + + DefaultSimpleImportingScope, index = 4 + + ExplicitStarImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 6 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.txt new file mode 100644 index 00000000000..50c552ff978 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor.txt @@ -0,0 +1,83 @@ +element: 10 +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 2 + packages: 0 + classifiers: 2 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 3 + + DefaultSimpleImportingScope, index = 4 + + ExplicitStarImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 6 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt new file mode 100644 index 00000000000..136eb91e302 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.kt @@ -0,0 +1,15 @@ +package test + +class Receiver { + fun fromReceiver() {} +} + +open class Base(val value: Receiver.() -> Unit) { + fun baseMember(): Int = 10 + val baseProp: Int = 10 +} + +class Child : Base({ this }) { + fun childMember(): Int = 10 + val childProp: Int = 10 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.pretty.txt new file mode 100644 index 00000000000..00987bf1afc --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.pretty.txt @@ -0,0 +1,62 @@ +element: this +implicit receivers: + type: test.Receiver + owner symbol: KtFirAnonymousFunctionSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 4 + fun fromReceiver() + fun equals(other: kotlin.Any?): kotlin.Boolean + fun hashCode(): kotlin.Int + fun toString(): kotlin.String + constructors: 1 + constructor() + + LocalScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 5 + packages: 0 + classifiers: 3 + class Receiver + class Base(value: test.Receiver.() -> kotlin.Unit) + class Child : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 6 + + DefaultSimpleImportingScope, index = 7 + + ExplicitStarImportingScope, index = 8 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 9 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.txt new file mode 100644 index 00000000000..b5c2063668e --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_lambda.txt @@ -0,0 +1,289 @@ +element: this +implicit receivers: + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Receiver + owner symbol: KtFirAnonymousFunctionSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + TypeScope, index = 1 + packages: 0 + classifiers: 0 + callables: 4 + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: test/Receiver.fromReceiver + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: fromReceiver + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Unit + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.equals + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: true + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: equals + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Boolean + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [ + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: other + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any? + symbolKind: LOCAL + typeParameters: [] + ] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.hashCode + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: hashCode + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: kotlin/Any.toString + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: false + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: OPEN + name: toString + origin: LIBRARY + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/String + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + constructors: 1 + KtConstructorSymbol: + annotationsList: [] + callableIdIfNonLocal: null + containingClassIdIfNonLocal: test/Receiver + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Receiver + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + + LocalScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + LocalScope, index = 3 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 5 + packages: 0 + classifiers: 3 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Receiver + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Receiver + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 6 + + DefaultSimpleImportingScope, index = 7 + + ExplicitStarImportingScope, index = 8 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 9 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt new file mode 100644 index 00000000000..17ff972ecd9 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.kt @@ -0,0 +1,12 @@ +package test + +interface BaseInterface { + class NestedFromInterface +} + +open class Base(any: Any): BaseInterface { + class NestedFromClass + inner class InnerFromClass +} + +class Child : Base(Base.NestedFromClass()) \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.pretty.txt new file mode 100644 index 00000000000..b3869361d21 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.pretty.txt @@ -0,0 +1,44 @@ +element: Base.NestedFromClass() +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + StaticMemberScope, index = 1 + packages: 0 + classifiers: 2 + class NestedFromClass + class InnerFromClass + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 3 + interface BaseInterface + class Base(any: kotlin.Any) : test.BaseInterface + class Child : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.txt new file mode 100644 index 00000000000..4c4b80f7462 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses.txt @@ -0,0 +1,164 @@ +element: Base.NestedFromClass() +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + StaticMemberScope, index = 1 + packages: 0 + classifiers: 2 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base.NestedFromClass + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: NestedFromClass + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base.InnerFromClass + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: true + modality: FINAL + name: InnerFromClass + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: CLASS_MEMBER + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 2 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 3 + packages: 0 + classifiers: 3 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/BaseInterface + classKind: INTERFACE + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: ABSTRACT + name: BaseInterface + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/BaseInterface + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 4 + + DefaultSimpleImportingScope, index = 5 + + ExplicitStarImportingScope, index = 6 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 7 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt new file mode 100644 index 00000000000..9ddb274dc8f --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.kt @@ -0,0 +1,12 @@ +package test + +interface BaseInterface { + class NestedFromInterface +} + +open class Base : BaseInterface { + class NestedFromClass + inner class InnerFromClass +} + +class Child : Base<Base.NestedFromClass>() \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.pretty.txt new file mode 100644 index 00000000000..03b8e184b02 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.pretty.txt @@ -0,0 +1,30 @@ +element: Base.NestedFromClass +implicit receivers: +scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 0 + classifiers: 3 + interface BaseInterface + class Base : test.BaseInterface + class Child : test.Base() + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.txt new file mode 100644 index 00000000000..89cb6175ce9 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeConstructor_nestedClasses_typeArgument.txt @@ -0,0 +1,109 @@ +element: Base.NestedFromClass +implicit receivers: +scopes: + ExplicitSimpleImportingScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 1 + packages: 0 + classifiers: 3 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/BaseInterface + classKind: INTERFACE + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: ABSTRACT + name: BaseInterface + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: OPEN + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/BaseInterface + ] + symbolKind: TOP_LEVEL + typeParameters: [ + KtTypeParameterSymbol(T) + ] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base.NestedFromClass + ] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 2 + + DefaultSimpleImportingScope, index = 3 + + ExplicitStarImportingScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 5 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt new file mode 100644 index 00000000000..3c98ae65d85 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.kt @@ -0,0 +1,11 @@ +package test + +interface Base { + fun baseMember(): Int = 10 + val baseProp: Int = 10 +} + +class Child(base: Base) : Base by base { + fun childMember(): Int = 10 + val childProp: Int = 10 +} \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.pretty.txt new file mode 100644 index 00000000000..75410381e8a --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.pretty.txt @@ -0,0 +1,36 @@ +element: base +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + base: test.Base + constructors: 0 + + ExplicitSimpleImportingScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 2 + packages: 0 + classifiers: 2 + interface Base + class Child(base: test.Base) : test.Base + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 3 + + DefaultSimpleImportingScope, index = 4 + + ExplicitStarImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 6 + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.txt new file mode 100644 index 00000000000..0bc7fc04fdb --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/superTypeDelegate.txt @@ -0,0 +1,103 @@ +element: base +implicit receivers: +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 1 + KtValueParameterSymbol: + annotationsList: [] + callableIdIfNonLocal: null + contextReceivers: [] + generatedPrimaryConstructorProperty: null + hasDefaultValue: false + isCrossinline: false + isExtension: false + isImplicitLambdaParameter: false + isNoinline: false + isVararg: false + name: base + origin: SOURCE + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + symbolKind: LOCAL + typeParameters: [] + constructors: 0 + + ExplicitSimpleImportingScope, index = 1 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 2 + packages: 0 + classifiers: 2 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Base + classKind: INTERFACE + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: ABSTRACT + name: Base + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: test/Child + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: Child + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: test/Base + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 3 + + DefaultSimpleImportingScope, index = 4 + + ExplicitStarImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultStarImportingScope, index = 6 +