diff --git a/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/duplicatedCallableWithImplicitType.txt b/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/duplicatedCallableWithImplicitType.txt index 94a2abfbb76..9f370a89565 100644 --- a/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/duplicatedCallableWithImplicitType.txt +++ b/analysis/analysis-api/testData/components/diagnosticsProvider/diagnostics/duplicatedCallableWithImplicitType.txt @@ -1,4 +1 @@ Diagnostics from elements: - for PSI element of type KtCallExpression at (26,5-36) - ARGUMENT_TYPE_MISMATCH text ranges: [(127,158)] - PSI: KtCallExpression at (26,5-36) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt index ffe18b322a9..ee3dfc85ef1 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirReturnTypeCalculatorWithJump.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.element.builder import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignationWithFile import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.asResolveTarget import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitBodyTargetResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirImplicitTypesLazyResolver import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLImplicitBodyResolveComputationSession @@ -33,11 +34,12 @@ internal class LLFirReturnTypeCalculatorWithJump( declaration.lazyResolveToPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE.previous) val designation = declaration.collectDesignationWithFile().asResolveTarget() + val targetSession = designation.target.llFirSession val resolver = LLFirImplicitBodyTargetResolver( designation, lockProvider = lockProvider, - session = declaration.moduleData.session, - scopeSession = scopeSession, + session = targetSession, + scopeSession = targetSession.getScopeSession(), firResolveContextCollector = towerDataContextCollector, llImplicitBodyResolveComputationSessionParameter = implicitBodyResolveComputationSession as LLImplicitBodyResolveComputationSession, ) diff --git a/analysis/low-level-api-fir/testData/lazyResolve/functions/implicitTypeFromFunctionWithDuplicatedName.txt b/analysis/low-level-api-fir/testData/lazyResolve/functions/implicitTypeFromFunctionWithDuplicatedName.txt index 984402c669b..e7eba43bd36 100644 --- a/analysis/low-level-api-fir/testData/lazyResolve/functions/implicitTypeFromFunctionWithDuplicatedName.txt +++ b/analysis/low-level-api-fir/testData/lazyResolve/functions/implicitTypeFromFunctionWithDuplicatedName.txt @@ -116,11 +116,13 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt public final [ResolvedTo(CONTRACTS)] fun usage(): { LAZY_BLOCK } IMPLICIT_TYPES_BODY_RESOLVE: -FILE: [ResolvedTo(RAW_FIR)] dependency.kt - public? final? [ResolvedTo(RAW_FIR)] fun implicitType(): { LAZY_BLOCK } +FILE: [ResolvedTo(IMPORTS)] dependency.kt + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitType(): R|kotlin/Int| { + ^implicitType Int(1) + } FILE: [ResolvedTo(IMPORTS)] annotation.kt - public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/String| { + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/Int| { ^implicitTypeFromAnotherModule R|usage/implicitType|() } @@ -130,8 +132,8 @@ FILE: [ResolvedTo(IMPORTS)] dependency.kt } FILE: [ResolvedTo(IMPORTS)] usage.kt - public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun usage(): R|kotlin/String| { - ^usage R|kotlin/run|( = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/String| { + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun usage(): R|kotlin/Int| { + ^usage R|kotlin/run|( = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/Int| { R|usage/implicitType|() ^ R|usage/implicitTypeFromAnotherModule|() } @@ -139,11 +141,13 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt } ANNOTATION_ARGUMENTS: -FILE: [ResolvedTo(RAW_FIR)] dependency.kt - public? final? [ResolvedTo(RAW_FIR)] fun implicitType(): { LAZY_BLOCK } +FILE: [ResolvedTo(IMPORTS)] dependency.kt + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitType(): R|kotlin/Int| { + ^implicitType Int(1) + } FILE: [ResolvedTo(IMPORTS)] annotation.kt - public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/String| { + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/Int| { ^implicitTypeFromAnotherModule R|usage/implicitType|() } @@ -153,8 +157,8 @@ FILE: [ResolvedTo(IMPORTS)] dependency.kt } FILE: [ResolvedTo(IMPORTS)] usage.kt - public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun usage(): R|kotlin/String| { - ^usage R|kotlin/run|( = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/String| { + public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun usage(): R|kotlin/Int| { + ^usage R|kotlin/run|( = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/Int| { R|usage/implicitType|() ^ R|usage/implicitTypeFromAnotherModule|() } @@ -162,11 +166,13 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt } BODY_RESOLVE: -FILE: [ResolvedTo(RAW_FIR)] dependency.kt - public? final? [ResolvedTo(RAW_FIR)] fun implicitType(): { LAZY_BLOCK } +FILE: [ResolvedTo(IMPORTS)] dependency.kt + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitType(): R|kotlin/Int| { + ^implicitType Int(1) + } FILE: [ResolvedTo(IMPORTS)] annotation.kt - public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/String| { + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun implicitTypeFromAnotherModule(): R|kotlin/Int| { ^implicitTypeFromAnotherModule R|usage/implicitType|() } @@ -176,8 +182,8 @@ FILE: [ResolvedTo(IMPORTS)] dependency.kt } FILE: [ResolvedTo(IMPORTS)] usage.kt - public final [ResolvedTo(BODY_RESOLVE)] fun usage(): R|kotlin/String| { - ^usage R|kotlin/run|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/String| { + public final [ResolvedTo(BODY_RESOLVE)] fun usage(): R|kotlin/Int| { + ^usage R|kotlin/run|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/Int| { R|usage/implicitType|() ^ R|usage/implicitTypeFromAnotherModule|() } @@ -186,8 +192,8 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt FILE RAW TO BODY: FILE: [ResolvedTo(BODY_RESOLVE)] usage.kt - public final [ResolvedTo(BODY_RESOLVE)] fun usage(): R|kotlin/String| { - ^usage R|kotlin/run|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/String| { + public final [ResolvedTo(BODY_RESOLVE)] fun usage(): R|kotlin/Int| { + ^usage R|kotlin/run|( = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=kotlin/Function0] run@fun (): R|kotlin/Int| { R|usage/implicitType|() ^ R|usage/implicitTypeFromAnotherModule|() }