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 aa73dae7504..5aaa63ef117 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 @@ -76,6 +76,12 @@ public class FirIdeDependentAnalysisSourceModuleScopeContextForPositionTestGener runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.kt"); } + @Test + @TestMetadata("smartCastInAnonymousFunction.kt") + public void testSmartCastInAnonymousFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt"); + } + @Test @TestMetadata("smartCastInWhenEntryCondition.kt") public void testSmartCastInWhenEntryCondition() 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 a1b84b93a76..6a29488a76b 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 @@ -76,6 +76,12 @@ public class FirIdeNormalAnalysisSourceModuleScopeContextForPositionTestGenerate runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.kt"); } + @Test + @TestMetadata("smartCastInAnonymousFunction.kt") + public void testSmartCastInAnonymousFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt"); + } + @Test @TestMetadata("smartCastInWhenEntryCondition.kt") public void testSmartCastInWhenEntryCondition() 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 c5d986e71fc..57cbc9a6486 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 @@ -76,6 +76,12 @@ public class FirStandaloneNormalAnalysisSourceModuleScopeContextForPositionTestG runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/simpleScopeContextForPosition.kt"); } + @Test + @TestMetadata("smartCastInAnonymousFunction.kt") + public void testSmartCastInAnonymousFunction() throws Exception { + runTest("analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt"); + } + @Test @TestMetadata("smartCastInWhenEntryCondition.kt") public void testSmartCastInWhenEntryCondition() throws Exception { diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.kt index ba8aab59aae..5364ff23251 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.kt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.kt @@ -1,14 +1,5 @@ -interface List { - fun add(e: T) - fun get(index: Int): T -} - -inline fun buildList(f: List.() -> Unit): List = l - fun test() { - buildList { - with(this.get(0)) { - e - } + with(t) { + e } } \ No newline at end of file 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 b44a4bc901d..fc5772e3499 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.pretty.txt @@ -1,9 +1,6 @@ element: e implicit receivers: - type: ERROR(Cannot infer argument for type parameter E) - owner symbol: KtFirAnonymousFunctionSymbol - - type: List + type: ERROR(Cannot infer argument for type parameter T) owner symbol: KtFirAnonymousFunctionSymbol scopes: @@ -25,42 +22,19 @@ scopes: callables: 0 constructors: 0 - TypeScope, index = 3 - packages: 0 - classifiers: 0 - callables: 5 - fun add(e: T) - fun get(index: kotlin.Int): T - fun equals(other: kotlin.Any?): kotlin.Boolean - fun hashCode(): kotlin.Int - fun toString(): kotlin.String - constructors: 0 - - LocalScope, index = 4 + LocalScope, index = 3 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 5 + ExplicitSimpleImportingScope, index = 4 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 6 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - - ExplicitSimpleImportingScope, index = 7 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - - PackageMemberScope, index = 8 + PackageMemberScope, index = 5 packages: 6 META-INF java @@ -68,24 +42,22 @@ scopes: kotlin org sun - classifiers: 1 - interface List - callables: 2 - fun buildList(f: List.() -> kotlin.Unit): List + classifiers: 0 + callables: 1 fun test() constructors: 0 - DefaultSimpleImportingScope, index = 9 + DefaultSimpleImportingScope, index = 6 - DefaultSimpleImportingScope, index = 10 + DefaultSimpleImportingScope, index = 7 - ExplicitStarImportingScope, index = 11 + ExplicitStarImportingScope, index = 8 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultSimpleImportingScope, index = 12 + DefaultSimpleImportingScope, index = 9 - DefaultStarImportingScope, index = 13 + 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 62d93cd41a9..ddd6e58927a 100644 --- a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/errorType.txt @@ -2,17 +2,7 @@ element: e implicit receivers: type: KtTypeErrorType: annotationsList: [] - type: ERROR CLASS: Cannot infer argument for type parameter E - owner symbol: KtFirAnonymousFunctionSymbol - - type: KtUsualClassType: - annotationsList: [] - ownTypeArguments: [ - KtTypeErrorType: - annotationsList: [] - type: ERROR CLASS: Cannot infer argument for type parameter E - ] - type: List + type: ERROR CLASS: Cannot infer argument for type parameter T owner symbol: KtFirAnonymousFunctionSymbol scopes: @@ -34,243 +24,19 @@ scopes: callables: 0 constructors: 0 - TypeScope, index = 3 - packages: 0 - classifiers: 0 - callables: 5 - KtFunctionSymbol: - annotationsList: [] - callableIdIfNonLocal: /List.add - 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: ABSTRACT - name: add - origin: SOURCE - receiverParameter: null - returnType: KtUsualClassType: - annotationsList: [] - ownTypeArguments: [] - type: kotlin/Unit - 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: e - origin: SOURCE - receiverParameter: null - returnType: KtTypeParameterType: - annotationsList: [] - type: T - symbolKind: LOCAL - typeParameters: [] - ] - visibility: Public - KtFunctionSymbol: - annotationsList: [] - callableIdIfNonLocal: /List.get - 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: ABSTRACT - name: get - origin: SOURCE - receiverParameter: null - returnType: KtTypeParameterType: - annotationsList: [] - type: T - 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: index - origin: SOURCE - receiverParameter: null - returnType: KtUsualClassType: - annotationsList: [] - ownTypeArguments: [] - type: kotlin/Int - symbolKind: LOCAL - 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: 0 - - LocalScope, index = 4 + LocalScope, index = 3 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 5 + ExplicitSimpleImportingScope, index = 4 packages: 0 classifiers: 0 callables: 0 constructors: 0 - LocalScope, index = 6 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - - ExplicitSimpleImportingScope, index = 7 - packages: 0 - classifiers: 0 - callables: 0 - constructors: 0 - - PackageMemberScope, index = 8 + PackageMemberScope, index = 5 packages: 6 KtPackageSymbol: fqName: META-INF @@ -290,104 +56,8 @@ scopes: KtPackageSymbol: fqName: sun origin: SOURCE - classifiers: 1 - KtNamedClassOrObjectSymbol: - annotationsList: [] - classIdIfNonLocal: List - classKind: INTERFACE - companionObject: null - contextReceivers: [] - isActual: false - isData: false - isExpect: false - isExternal: false - isFun: false - isInline: false - isInner: false - modality: ABSTRACT - name: List - origin: SOURCE - superTypes: [ - KtUsualClassType: - annotationsList: [] - ownTypeArguments: [] - type: kotlin/Any - ] - symbolKind: TOP_LEVEL - typeParameters: [ - KtTypeParameterSymbol(T) - ] - visibility: Public - callables: 2 - KtFunctionSymbol: - annotationsList: [] - callableIdIfNonLocal: /buildList - contextReceivers: [] - contractEffects: [] - hasStableParameterNames: true - isActual: false - isBuiltinFunctionInvoke: false - isExpect: false - isExtension: false - isExternal: false - isInfix: false - isInline: true - isOperator: false - isOverride: false - isStatic: false - isSuspend: false - modality: FINAL - name: buildList - origin: SOURCE - receiverParameter: null - returnType: KtUsualClassType: - annotationsList: [] - ownTypeArguments: [ - KtTypeParameterType: - annotationsList: [] - type: E - ] - type: List - symbolKind: TOP_LEVEL - typeParameters: [ - KtTypeParameterSymbol(E) - ] - valueParameters: [ - KtValueParameterSymbol: - annotationsList: [] - callableIdIfNonLocal: null - contextReceivers: [] - generatedPrimaryConstructorProperty: null - hasDefaultValue: false - isCrossinline: false - isExtension: false - isImplicitLambdaParameter: false - isNoinline: false - isVararg: false - name: f - origin: SOURCE - receiverParameter: null - returnType: KtFunctionalType: - annotationsList: [] - ownTypeArguments: [ - KtUsualClassType: - annotationsList: [] - ownTypeArguments: [ - KtTypeParameterType: - annotationsList: [] - type: E - ] - type: List - KtUsualClassType: - annotationsList: [] - ownTypeArguments: [] - type: kotlin/Unit - ] - type: @ExtensionFunctionType kotlin/Function1, kotlin/Unit> - symbolKind: LOCAL - typeParameters: [] - ] - visibility: Public + classifiers: 0 + callables: 1 KtFunctionSymbol: annotationsList: [] callableIdIfNonLocal: /test @@ -419,16 +89,17 @@ scopes: visibility: Public constructors: 0 - DefaultSimpleImportingScope, index = 9 + DefaultSimpleImportingScope, index = 6 - DefaultSimpleImportingScope, index = 10 + DefaultSimpleImportingScope, index = 7 - ExplicitStarImportingScope, index = 11 + ExplicitStarImportingScope, index = 8 packages: 0 classifiers: 0 callables: 0 constructors: 0 - DefaultSimpleImportingScope, index = 12 + DefaultSimpleImportingScope, index = 9 + + DefaultStarImportingScope, index = 10 - DefaultStarImportingScope, index = 13 \ No newline at end of file diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt new file mode 100644 index 00000000000..91cb9cdc0ea --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.kt @@ -0,0 +1,4 @@ +class A + +fun Any.test() = if (this is A) ({ e }) else ({ 2 }) + diff --git a/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt new file mode 100644 index 00000000000..a319e91844b --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.pretty.txt @@ -0,0 +1,73 @@ +element: e +implicit receivers: + type: A + owner symbol: KtFirFunctionSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + 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 + packages: 0 + classifiers: 0 + callables: 3 + fun equals(other: kotlin.Any?): kotlin.Boolean + fun hashCode(): kotlin.Int + fun toString(): kotlin.String + constructors: 1 + constructor() + + LocalScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 6 + packages: 6 + META-INF + java + javax + kotlin + org + sun + classifiers: 1 + class A + callables: 1 + fun kotlin.Any.test(): () -> kotlin.Int + constructors: 0 + + DefaultSimpleImportingScope, index = 7 + + DefaultSimpleImportingScope, index = 8 + + ExplicitStarImportingScope, index = 9 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, 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 new file mode 100644 index 00000000000..6c62e314618 --- /dev/null +++ b/analysis/analysis-api/testData/components/scopeProvider/scopeContextForPosition/smartCastInAnonymousFunction.txt @@ -0,0 +1,277 @@ +element: e +implicit receivers: + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: A + owner symbol: KtFirFunctionSymbol + +scopes: + LocalScope, index = 0 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + 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 + packages: 0 + classifiers: 0 + callables: 3 + 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: A + contextReceivers: [] + hasStableParameterNames: true + isActual: false + isExpect: false + isExtension: false + isPrimary: true + origin: SOURCE_MEMBER_GENERATED + receiverParameter: null + returnType: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: A + symbolKind: CLASS_MEMBER + typeParameters: [] + valueParameters: [] + visibility: Public + + LocalScope, index = 4 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + ExplicitSimpleImportingScope, index = 5 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + PackageMemberScope, index = 6 + 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: 1 + KtNamedClassOrObjectSymbol: + annotationsList: [] + classIdIfNonLocal: A + classKind: CLASS + companionObject: null + contextReceivers: [] + isActual: false + isData: false + isExpect: false + isExternal: false + isFun: false + isInline: false + isInner: false + modality: FINAL + name: A + origin: SOURCE + superTypes: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + ] + symbolKind: TOP_LEVEL + typeParameters: [] + visibility: Public + callables: 1 + KtFunctionSymbol: + annotationsList: [] + callableIdIfNonLocal: /test + contextReceivers: [] + contractEffects: [] + hasStableParameterNames: true + isActual: false + isBuiltinFunctionInvoke: false + isExpect: false + isExtension: true + isExternal: false + isInfix: false + isInline: false + isOperator: false + isOverride: false + isStatic: false + isSuspend: false + modality: FINAL + name: test + origin: SOURCE + receiverParameter: KtReceiverParameterSymbol: + annotationsList: [] + origin: SOURCE + owningCallableSymbol: KtFunctionSymbol(/test) + type: KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Any + returnType: KtFunctionalType: + annotationsList: [] + ownTypeArguments: [ + KtUsualClassType: + annotationsList: [] + ownTypeArguments: [] + type: kotlin/Int + ] + type: kotlin/Function0 + symbolKind: TOP_LEVEL + typeParameters: [] + valueParameters: [] + visibility: Public + constructors: 0 + + DefaultSimpleImportingScope, index = 7 + + DefaultSimpleImportingScope, index = 8 + + ExplicitStarImportingScope, index = 9 + packages: 0 + classifiers: 0 + callables: 0 + constructors: 0 + + DefaultSimpleImportingScope, index = 10 + + DefaultStarImportingScope, index = 11 + diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt index 592c12384c4..25ace460d43 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/element/builder/FirTowerDataContextCollector.kt @@ -62,7 +62,7 @@ internal class FirTowerDataContextAllElementsCollector : FirResolveContextCollec // we do not collect contexts for such declarations if (psi is KtDelegatedSuperTypeEntry) return - elementsToContext[psi] = context.towerDataContext + elementsToContext[psi] = context.towerDataContext.createSnapshot() } override fun addClassHeaderContext(declaration: FirRegularClass, context: FirTowerDataContext) {