K2: rename FakeOverrideTypeCalculator to CallableCopyTypeCalculator
This commits performs a rename. According to KT-61443 this calculator is applicable not only to fake (substitution/intersection) overrides.
This commit is contained in:
committed by
Space Team
parent
53e4e2f6b1
commit
f8ada456e4
+1
-1
@@ -261,7 +261,7 @@ internal class KtFirScopeProvider(
|
|||||||
private fun getFirTypeScope(type: KtFirType): FirTypeScope? = type.coneType.scope(
|
private fun getFirTypeScope(type: KtFirType): FirTypeScope? = type.coneType.scope(
|
||||||
firResolveSession.useSiteFirSession,
|
firResolveSession.useSiteFirSession,
|
||||||
getScopeSession(),
|
getScopeSession(),
|
||||||
FakeOverrideTypeCalculator.Forced,
|
CallableCopyTypeCalculator.Forced,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -38,7 +38,7 @@ import org.jetbrains.kotlin.fir.resolve.providers.toSymbol
|
|||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirExplicitSimpleImportingScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirExplicitSimpleImportingScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -264,7 +264,7 @@ internal object FirReferenceResolveHelper {
|
|||||||
val scope = lhs.resolvedType.scope(
|
val scope = lhs.resolvedType.scope(
|
||||||
session,
|
session,
|
||||||
analysisSession.getScopeSessionFor(analysisSession.useSiteSession),
|
analysisSession.getScopeSessionFor(analysisSession.useSiteSession),
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return emptyList()
|
) ?: return emptyList()
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -28,7 +28,7 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
|||||||
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties
|
import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertyAccessorSymbol
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
@@ -55,7 +55,7 @@ internal class KtFirPropertySetterSymbol(
|
|||||||
val containingClassScope = firSymbol.dispatchReceiverType?.scope(
|
val containingClassScope = firSymbol.dispatchReceiverType?.scope(
|
||||||
session,
|
session,
|
||||||
analysisSession.getScopeSessionFor(session),
|
analysisSession.getScopeSessionFor(session),
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return false
|
) ?: return false
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
||||||
import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution
|
import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater
|
||||||
|
|
||||||
internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
||||||
override fun resolve(
|
override fun resolve(
|
||||||
@@ -91,8 +91,8 @@ internal class LLFirImplicitBodyTargetResolver(
|
|||||||
|
|
||||||
override fun rawResolve(target: FirElementWithResolveState): Unit = when {
|
override fun rawResolve(target: FirElementWithResolveState): Unit = when {
|
||||||
target is FirScript -> resolveScript(target)
|
target is FirScript -> resolveScript(target)
|
||||||
target is FirCallableDeclaration && target.attributes.fakeOverrideSubstitution != null -> {
|
target is FirCallableDeclaration && target.attributes.callableCopySubstitutionForTypeUpdater != null -> {
|
||||||
transformer.returnTypeCalculator.fakeOverrideTypeCalculator.computeReturnType(target)
|
transformer.returnTypeCalculator.callableCopyTypeCalculator.computeReturnType(target)
|
||||||
Unit
|
Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
RAW_FIR:
|
RAW_FIR:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -16,7 +16,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
IMPORTS:
|
IMPORTS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -33,7 +33,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPILER_REQUIRED_ANNOTATIONS:
|
COMPILER_REQUIRED_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -50,7 +50,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPANION_GENERATION:
|
COMPANION_GENERATION:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -67,7 +67,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
SUPER_TYPES:
|
SUPER_TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -84,7 +84,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -101,7 +101,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATUS:
|
STATUS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -118,7 +118,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
EXPECT_ACTUAL_MATCHING:
|
EXPECT_ACTUAL_MATCHING:
|
||||||
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -135,7 +135,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
ARGUMENTS_OF_ANNOTATIONS:
|
ARGUMENTS_OF_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -152,7 +152,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
CONTRACTS:
|
CONTRACTS:
|
||||||
TARGET: public open [ResolvedTo(CONTRACTS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(CONTRACTS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitType.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
|
|||||||
Vendored
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
RAW_FIR:
|
RAW_FIR:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -12,7 +12,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
IMPORTS:
|
IMPORTS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -25,7 +25,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPILER_REQUIRED_ANNOTATIONS:
|
COMPILER_REQUIRED_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -38,7 +38,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPANION_GENERATION:
|
COMPANION_GENERATION:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -51,7 +51,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
SUPER_TYPES:
|
SUPER_TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -64,7 +64,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -77,7 +77,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATUS:
|
STATUS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -90,7 +90,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
EXPECT_ACTUAL_MATCHING:
|
EXPECT_ACTUAL_MATCHING:
|
||||||
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -103,7 +103,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
ARGUMENTS_OF_ANNOTATIONS:
|
ARGUMENTS_OF_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
@@ -116,7 +116,7 @@ FILE: [ResolvedTo(IMPORTS)] usage.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
CONTRACTS:
|
CONTRACTS:
|
||||||
TARGET: public open [ResolvedTo(CONTRACTS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(CONTRACTS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
FILE: [ResolvedTo(IMPORTS)] usage.kt
|
||||||
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol /Aaa.$$delegate_0}] class Aaa : R|Interface| {
|
||||||
|
|||||||
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
RAW_FIR:
|
RAW_FIR:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -22,7 +22,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
IMPORTS:
|
IMPORTS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -45,7 +45,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
COMPILER_REQUIRED_ANNOTATIONS:
|
COMPILER_REQUIRED_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -68,7 +68,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
COMPANION_GENERATION:
|
COMPANION_GENERATION:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -91,7 +91,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
SUPER_TYPES:
|
SUPER_TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -114,7 +114,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -137,7 +137,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
STATUS:
|
STATUS:
|
||||||
TARGET: public open [ResolvedTo(STATUS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -160,7 +160,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
EXPECT_ACTUAL_MATCHING:
|
EXPECT_ACTUAL_MATCHING:
|
||||||
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
|
||||||
@@ -183,7 +183,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
ARGUMENTS_OF_ANNOTATIONS:
|
ARGUMENTS_OF_ANNOTATIONS:
|
||||||
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
|
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
|
||||||
@@ -206,7 +206,7 @@ FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
CONTRACTS:
|
CONTRACTS:
|
||||||
TARGET: public open [ResolvedTo(CONTRACTS)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0, FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType)] fun implicitType(): <implicit>
|
TARGET: public open [ResolvedTo(CONTRACTS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor=Empty, baseSymbol=FirNamedFunctionSymbol /Interface.implicitType), DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /Interface.implicitType, containingClass=Aaa, delegateField=FirFieldSymbol /Aaa.$$delegate_0] fun implicitType(): <implicit>
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] delegateWithImplicitTypeScript.kts
|
||||||
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
|
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
|
||||||
|
|||||||
Vendored
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
RAW_FIR:
|
RAW_FIR:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -22,7 +22,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
IMPORTS:
|
IMPORTS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -45,7 +45,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPILER_REQUIRED_ANNOTATIONS:
|
COMPILER_REQUIRED_ANNOTATIONS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -68,7 +68,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
COMPANION_GENERATION:
|
COMPANION_GENERATION:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -91,7 +91,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
SUPER_TYPES:
|
SUPER_TYPES:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -114,7 +114,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -137,7 +137,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATUS:
|
STATUS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -160,7 +160,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
EXPECT_ACTUAL_MATCHING:
|
EXPECT_ACTUAL_MATCHING:
|
||||||
TARGET: public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -183,7 +183,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
ARGUMENTS_OF_ANNOTATIONS:
|
ARGUMENTS_OF_ANNOTATIONS:
|
||||||
TARGET: public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
@@ -206,7 +206,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
|||||||
}
|
}
|
||||||
|
|
||||||
CONTRACTS:
|
CONTRACTS:
|
||||||
TARGET: public final [ResolvedTo(CONTRACTS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(CONTRACTS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitType.kt
|
||||||
|
|||||||
Vendored
+10
-10
@@ -1,5 +1,5 @@
|
|||||||
RAW_FIR:
|
RAW_FIR:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -28,7 +28,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
IMPORTS:
|
IMPORTS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -57,7 +57,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
COMPILER_REQUIRED_ANNOTATIONS:
|
COMPILER_REQUIRED_ANNOTATIONS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -86,7 +86,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
COMPANION_GENERATION:
|
COMPANION_GENERATION:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -115,7 +115,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
SUPER_TYPES:
|
SUPER_TYPES:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -144,7 +144,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -173,7 +173,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
STATUS:
|
STATUS:
|
||||||
TARGET: public final [ResolvedTo(STATUS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(STATUS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -202,7 +202,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
EXPECT_ACTUAL_MATCHING:
|
EXPECT_ACTUAL_MATCHING:
|
||||||
TARGET: public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -231,7 +231,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
ARGUMENTS_OF_ANNOTATIONS:
|
ARGUMENTS_OF_ANNOTATIONS:
|
||||||
TARGET: public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
@@ -260,7 +260,7 @@ FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
|||||||
|
|
||||||
|
|
||||||
CONTRACTS:
|
CONTRACTS:
|
||||||
TARGET: public final [ResolvedTo(CONTRACTS)] [FakeOverrideSubstitutionKey=FakeOverrideSubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
TARGET: public final [ResolvedTo(CONTRACTS)] [CallableCopySubstitutionKey=CallableCopySubstitution(substitutor={T -> kotlin/Int}, baseSymbol=FirPropertySymbol /AbstractClass.property), SubstitutedOverrideOriginalKey=/AbstractClass.property] val property: <implicit>
|
||||||
|
|
||||||
|
|
||||||
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
FILE: [ResolvedTo(IMPORTS)] substitutionFakeOverrideWithImplicitTypeScript.kts
|
||||||
|
|||||||
+2
-2
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
|||||||
import org.jetbrains.kotlin.fir.resolve.outerType
|
import org.jetbrains.kotlin.fir.resolve.outerType
|
||||||
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.firProvider
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.TypeAliasConstructorsSubstitutingScope
|
import org.jetbrains.kotlin.fir.scopes.impl.TypeAliasConstructorsSubstitutingScope
|
||||||
@@ -336,7 +336,7 @@ private fun FirClassLikeSymbol<*>.expandedClassWithConstructorsScope(context: Ch
|
|||||||
val expandedClass = expandedType?.toRegularClassSymbol(context.session)
|
val expandedClass = expandedType?.toRegularClassSymbol(context.session)
|
||||||
val expandedTypeScope = expandedType?.scope(
|
val expandedTypeScope = expandedType?.scope(
|
||||||
context.session, context.scopeSession,
|
context.session, context.scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.getDeclaredConstructors
|
import org.jetbrains.kotlin.fir.scopes.getDeclaredConstructors
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.lazyDeclarationResolver
|
import org.jetbrains.kotlin.fir.symbols.lazyDeclarationResolver
|
||||||
@@ -215,7 +215,7 @@ abstract class AbstractAnnotationDeserializer(
|
|||||||
val classScope = firAnnotationClass.defaultType().scope(
|
val classScope = firAnnotationClass.defaultType().scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = ScopeSession(),
|
scopeSession = ScopeSession(),
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = null,
|
requiredMembersPhase = null,
|
||||||
) ?: error("Null scope for $classId")
|
) ?: error("Null scope for $classId")
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
|||||||
val delegateToScope = firField.initializer!!.resolvedType
|
val delegateToScope = firField.initializer!!.resolvedType
|
||||||
.fullyExpandedType(session)
|
.fullyExpandedType(session)
|
||||||
.lowerBoundIfFlexible()
|
.lowerBoundIfFlexible()
|
||||||
.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing, null) ?: return
|
.scope(session, scopeSession, CallableCopyTypeCalculator.DoNothing, null) ?: return
|
||||||
|
|
||||||
val subClassLookupTag = firSubClass.symbol.toLookupTag()
|
val subClassLookupTag = firSubClass.symbol.toLookupTag()
|
||||||
|
|
||||||
|
|||||||
@@ -294,7 +294,7 @@ class JvmMappedScope(
|
|||||||
newTypeParameters = null,
|
newTypeParameters = null,
|
||||||
newContextReceiverTypes = emptyList(),
|
newContextReceiverTypes = emptyList(),
|
||||||
isExpect = false,
|
isExpect = false,
|
||||||
fakeOverrideSubstitution = null
|
callableCopySubstitutionForTypeUpdater = null
|
||||||
)
|
)
|
||||||
return newSymbol
|
return newSymbol
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.expressions.FirSmartCastExpression
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeRawScopeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeRawScopeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.scopes.*
|
import org.jetbrains.kotlin.fir.scopes.*
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirScopeWithFakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.impl.FirScopeWithCallableCopyReturnTypeUpdater
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.dynamicMembersStorage
|
import org.jetbrains.kotlin.fir.scopes.impl.dynamicMembersStorage
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.getOrBuildScopeForIntegerConstantOperatorType
|
import org.jetbrains.kotlin.fir.scopes.impl.getOrBuildScopeForIntegerConstantOperatorType
|
||||||
@@ -33,7 +33,7 @@ fun FirSmartCastExpression.smartcastScope(
|
|||||||
val smartcastScope = smartcastType.scope(
|
val smartcastScope = smartcastType.scope(
|
||||||
useSiteSession = useSiteSession,
|
useSiteSession = useSiteSession,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = requiredMembersPhase,
|
requiredMembersPhase = requiredMembersPhase,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -44,7 +44,7 @@ fun FirSmartCastExpression.smartcastScope(
|
|||||||
val originalScope = originalExpression.resolvedType.scope(
|
val originalScope = originalExpression.resolvedType.scope(
|
||||||
useSiteSession = useSiteSession,
|
useSiteSession = useSiteSession,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = requiredMembersPhase,
|
requiredMembersPhase = requiredMembersPhase,
|
||||||
) ?: return smartcastScope
|
) ?: return smartcastScope
|
||||||
|
|
||||||
@@ -65,12 +65,12 @@ fun ConeClassLikeType.delegatingConstructorScope(
|
|||||||
fun ConeKotlinType.scope(
|
fun ConeKotlinType.scope(
|
||||||
useSiteSession: FirSession,
|
useSiteSession: FirSession,
|
||||||
scopeSession: ScopeSession,
|
scopeSession: ScopeSession,
|
||||||
fakeOverrideTypeCalculator: FakeOverrideTypeCalculator,
|
callableCopyTypeCalculator: CallableCopyTypeCalculator,
|
||||||
requiredMembersPhase: FirResolvePhase?,
|
requiredMembersPhase: FirResolvePhase?,
|
||||||
): FirTypeScope? {
|
): FirTypeScope? {
|
||||||
val scope = scope(useSiteSession, scopeSession, requiredMembersPhase) ?: return null
|
val scope = scope(useSiteSession, scopeSession, requiredMembersPhase) ?: return null
|
||||||
if (fakeOverrideTypeCalculator == FakeOverrideTypeCalculator.DoNothing) return scope
|
if (callableCopyTypeCalculator == CallableCopyTypeCalculator.DoNothing) return scope
|
||||||
return FirScopeWithFakeOverrideTypeCalculator(scope, fakeOverrideTypeCalculator)
|
return FirScopeWithCallableCopyReturnTypeUpdater(scope, callableCopyTypeCalculator)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun ConeKotlinType.scope(
|
private fun ConeKotlinType.scope(
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.renderWithType
|
|||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.smartcastScope
|
import org.jetbrains.kotlin.fir.resolve.smartcastScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
@@ -41,7 +41,7 @@ abstract class ReceiverValue {
|
|||||||
open fun scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope? = type.scope(
|
open fun scope(useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope? = type.scope(
|
||||||
useSiteSession = useSiteSession,
|
useSiteSession = useSiteSession,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ class ExpressionReceiverValue(override val receiverExpression: FirExpression) :
|
|||||||
return type.scope(
|
return type.scope(
|
||||||
useSiteSession,
|
useSiteSession,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ sealed class ImplicitReceiverValue<S : FirBasedSymbol<*>>(
|
|||||||
type.scope(
|
type.scope(
|
||||||
useSiteSession,
|
useSiteSession,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS
|
requiredMembersPhase = FirResolvePhase.STATUS
|
||||||
)
|
)
|
||||||
private set
|
private set
|
||||||
@@ -153,7 +153,7 @@ sealed class ImplicitReceiverValue<S : FirBasedSymbol<*>>(
|
|||||||
implicitScope = type.scope(
|
implicitScope = type.scope(
|
||||||
useSiteSession = useSiteSession,
|
useSiteSession = useSiteSession,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -171,7 +171,7 @@ sealed class ImplicitReceiverValue<S : FirBasedSymbol<*>>(
|
|||||||
implicitScope = type.scope(
|
implicitScope = type.scope(
|
||||||
useSiteSession = useSiteSession,
|
useSiteSession = useSiteSession,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -6,12 +6,12 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
|
|
||||||
abstract class ReturnTypeCalculator {
|
abstract class ReturnTypeCalculator {
|
||||||
abstract val fakeOverrideTypeCalculator: FakeOverrideTypeCalculator
|
abstract val callableCopyTypeCalculator: CallableCopyTypeCalculator
|
||||||
|
|
||||||
abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef?
|
abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef?
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
||||||
|
|
||||||
@@ -30,14 +30,14 @@ class ReturnTypeCalculatorForFullBodyResolve private constructor(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val fakeOverrideTypeCalculator: FakeOverrideTypeCalculator
|
override val callableCopyTypeCalculator: CallableCopyTypeCalculator
|
||||||
get() = FakeOverrideTypeCalculator.Forced
|
get() = CallableCopyTypeCalculator.Forced
|
||||||
|
|
||||||
override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
||||||
val returnTypeRef = declaration.returnTypeRef
|
val returnTypeRef = declaration.returnTypeRef
|
||||||
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
||||||
if (declaration.origin.fromSupertypes) {
|
if (declaration.origin.fromSupertypes) {
|
||||||
return FakeOverrideTypeCalculator.Forced.computeReturnType(declaration)
|
return CallableCopyTypeCalculator.Forced.computeReturnType(declaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
return buildErrorTypeRef { diagnostic = ConeSimpleDiagnostic("$reason: ${declaration.render()}", diagnosticKind) }
|
return buildErrorTypeRef { diagnostic = ConeSimpleDiagnostic("$reason: ${declaration.render()}", diagnosticKind) }
|
||||||
|
|||||||
+14
-13
@@ -15,32 +15,33 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
|||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
|
||||||
abstract class FakeOverrideTypeCalculator {
|
abstract class CallableCopyTypeCalculator {
|
||||||
abstract fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef?
|
abstract fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef?
|
||||||
|
|
||||||
object DoNothing : FakeOverrideTypeCalculator() {
|
object DoNothing : CallableCopyTypeCalculator() {
|
||||||
override fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef {
|
override fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef {
|
||||||
return declaration.returnTypeRef
|
return declaration.returnTypeRef
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class AbstractFakeOverrideTypeCalculator : FakeOverrideTypeCalculator() {
|
abstract class AbstractCallableCopyTypeCalculator : CallableCopyTypeCalculator() {
|
||||||
override fun computeReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
override fun computeReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
||||||
val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution ?: return declaration.getResolvedTypeRef()
|
val callableCopySubstitutionForTypeUpdater = declaration.attributes.callableCopySubstitutionForTypeUpdater
|
||||||
|
?: return declaration.getResolvedTypeRef()
|
||||||
|
|
||||||
// TODO: drop synchronized in KT-60385
|
// TODO: drop synchronized in KT-60385
|
||||||
synchronized(fakeOverrideSubstitution) {
|
synchronized(callableCopySubstitutionForTypeUpdater) {
|
||||||
if (declaration.attributes.fakeOverrideSubstitution == null) {
|
if (declaration.attributes.callableCopySubstitutionForTypeUpdater == null) {
|
||||||
return declaration.returnTypeRef as FirResolvedTypeRef
|
return declaration.returnTypeRef as FirResolvedTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
val (substitutor, baseSymbol) = callableCopySubstitutionForTypeUpdater
|
||||||
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
||||||
val baseReturnType = computeReturnType(baseDeclaration)?.type ?: return null
|
val baseReturnType = computeReturnType(baseDeclaration)?.type ?: return null
|
||||||
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
||||||
val returnType = declaration.returnTypeRef.resolvedTypeFromPrototype(coneType)
|
val returnType = declaration.returnTypeRef.resolvedTypeFromPrototype(coneType)
|
||||||
declaration.replaceReturnTypeRef(returnType)
|
declaration.replaceReturnTypeRef(returnType)
|
||||||
declaration.attributes.fakeOverrideSubstitution = null
|
declaration.attributes.callableCopySubstitutionForTypeUpdater = null
|
||||||
return returnType
|
return returnType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -49,7 +50,7 @@ abstract class FakeOverrideTypeCalculator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
object Forced : AbstractFakeOverrideTypeCalculator() {
|
object Forced : AbstractCallableCopyTypeCalculator() {
|
||||||
override fun FirCallableDeclaration.getResolvedTypeRef(): FirResolvedTypeRef? {
|
override fun FirCallableDeclaration.getResolvedTypeRef(): FirResolvedTypeRef? {
|
||||||
return returnTypeRef as? FirResolvedTypeRef
|
return returnTypeRef as? FirResolvedTypeRef
|
||||||
}
|
}
|
||||||
@@ -58,13 +59,13 @@ abstract class FakeOverrideTypeCalculator {
|
|||||||
|
|
||||||
// ---------------------------------------------------------------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
object FakeOverrideSubstitutionKey : FirDeclarationDataKey()
|
private object CallableCopySubstitutionKey : FirDeclarationDataKey()
|
||||||
|
|
||||||
var FirDeclarationAttributes.fakeOverrideSubstitution: FakeOverrideSubstitution? by FirDeclarationDataRegistry.attributesAccessor(
|
var FirDeclarationAttributes.callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? by FirDeclarationDataRegistry.attributesAccessor(
|
||||||
FakeOverrideSubstitutionKey
|
CallableCopySubstitutionKey
|
||||||
)
|
)
|
||||||
|
|
||||||
data class FakeOverrideSubstitution(
|
data class CallableCopySubstitution internal constructor(
|
||||||
val substitutor: ConeSubstitutor,
|
val substitutor: ConeSubstitutor,
|
||||||
val baseSymbol: FirBasedSymbol<*>
|
val baseSymbol: FirBasedSymbol<*>
|
||||||
)
|
)
|
||||||
+1
-1
@@ -125,7 +125,7 @@ fun FirClass.unsubstitutedScope(
|
|||||||
memberRequiredPhase: FirResolvePhase?,
|
memberRequiredPhase: FirResolvePhase?,
|
||||||
): FirTypeScope {
|
): FirTypeScope {
|
||||||
val scope = scopeProvider.getUseSiteMemberScope(this, useSiteSession, scopeSession, memberRequiredPhase)
|
val scope = scopeProvider.getUseSiteMemberScope(this, useSiteSession, scopeSession, memberRequiredPhase)
|
||||||
if (withForcedTypeCalculator) return FirScopeWithFakeOverrideTypeCalculator(scope, FakeOverrideTypeCalculator.Forced)
|
if (withForcedTypeCalculator) return FirScopeWithCallableCopyReturnTypeUpdater(scope, CallableCopyTypeCalculator.Forced)
|
||||||
return scope
|
return scope
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ fun debugCollectOverrides(symbol: FirCallableSymbol<*>, session: FirSession, sco
|
|||||||
val scope = symbol.dispatchReceiverType?.scope(
|
val scope = symbol.dispatchReceiverType?.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return emptyMap()
|
) ?: return emptyMap()
|
||||||
|
|
||||||
|
|||||||
+14
-16
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
|||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSessionKey
|
import org.jetbrains.kotlin.fir.resolve.ScopeSessionKey
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.chain
|
import org.jetbrains.kotlin.fir.resolve.substitution.chain
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideSubstitution
|
import org.jetbrains.kotlin.fir.scopes.CallableCopySubstitution
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
@@ -127,9 +127,8 @@ class FirClassSubstitutionScope(
|
|||||||
|
|
||||||
val symbolForOverride = FirFakeOverrideGenerator.createSymbolForSubstitutionOverride(original, newOwnerClassId)
|
val symbolForOverride = FirFakeOverrideGenerator.createSymbolForSubstitutionOverride(original, newOwnerClassId)
|
||||||
|
|
||||||
val (newTypeParameters, newDispatchReceiverType, newReceiverType, newReturnType, newSubstitutor, fakeOverrideSubstitution) = createSubstitutedData(
|
val (newTypeParameters, newDispatchReceiverType, newReceiverType, newReturnType, newSubstitutor, callableCopySubstitution) =
|
||||||
member, symbolForOverride
|
createSubstitutedData(member, symbolForOverride)
|
||||||
)
|
|
||||||
val newParameterTypes = member.valueParameters.map {
|
val newParameterTypes = member.valueParameters.map {
|
||||||
it.returnTypeRef.coneType.substitute(newSubstitutor)
|
it.returnTypeRef.coneType.substitute(newSubstitutor)
|
||||||
}
|
}
|
||||||
@@ -142,7 +141,7 @@ class FirClassSubstitutionScope(
|
|||||||
newReturnType == null &&
|
newReturnType == null &&
|
||||||
newParameterTypes.all { it == null } &&
|
newParameterTypes.all { it == null } &&
|
||||||
newTypeParameters === member.typeParameters &&
|
newTypeParameters === member.typeParameters &&
|
||||||
fakeOverrideSubstitution == null &&
|
callableCopySubstitution == null &&
|
||||||
newContextReceiverTypes.all { it == null }
|
newContextReceiverTypes.all { it == null }
|
||||||
) {
|
) {
|
||||||
if (original.dispatchReceiverType?.substitute(substitutor) != null) {
|
if (original.dispatchReceiverType?.substitute(substitutor) != null) {
|
||||||
@@ -177,7 +176,7 @@ class FirClassSubstitutionScope(
|
|||||||
newParameterTypes,
|
newParameterTypes,
|
||||||
newTypeParameters as List<FirTypeParameter>,
|
newTypeParameters as List<FirTypeParameter>,
|
||||||
makeExpect,
|
makeExpect,
|
||||||
fakeOverrideSubstitution
|
callableCopySubstitution
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,7 +186,7 @@ class FirClassSubstitutionScope(
|
|||||||
val constructor = original.fir
|
val constructor = original.fir
|
||||||
|
|
||||||
val symbolForOverride = FirConstructorSymbol(original.callableId)
|
val symbolForOverride = FirConstructorSymbol(original.callableId)
|
||||||
val (newTypeParameters, _, _, newReturnType, newSubstitutor, fakeOverrideSubstitution) =
|
val (newTypeParameters, _, _, newReturnType, newSubstitutor, callableCopySubstitution) =
|
||||||
createSubstitutedData(constructor, symbolForOverride)
|
createSubstitutedData(constructor, symbolForOverride)
|
||||||
|
|
||||||
// If constructor has a dispatch receiver, it should be an inner class' constructor.
|
// If constructor has a dispatch receiver, it should be an inner class' constructor.
|
||||||
@@ -224,7 +223,7 @@ class FirClassSubstitutionScope(
|
|||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newTypeParameters,
|
newTypeParameters,
|
||||||
makeExpect,
|
makeExpect,
|
||||||
fakeOverrideSubstitution
|
callableCopySubstitution
|
||||||
).symbol
|
).symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,9 +235,8 @@ class FirClassSubstitutionScope(
|
|||||||
|
|
||||||
val symbolForOverride = FirFakeOverrideGenerator.createSymbolForSubstitutionOverride(original, newOwnerClassId)
|
val symbolForOverride = FirFakeOverrideGenerator.createSymbolForSubstitutionOverride(original, newOwnerClassId)
|
||||||
|
|
||||||
val (newTypeParameters, newDispatchReceiverType, newReceiverType, newReturnType, _, fakeOverrideSubstitution) = createSubstitutedData(
|
val (newTypeParameters, newDispatchReceiverType, newReceiverType, newReturnType, _, callableCopySubstitutionForTypeUpdater) =
|
||||||
member, symbolForOverride
|
createSubstitutedData(member, symbolForOverride)
|
||||||
)
|
|
||||||
|
|
||||||
val newContextReceiverTypes = member.contextReceivers.map {
|
val newContextReceiverTypes = member.contextReceivers.map {
|
||||||
it.typeRef.coneType.substitute(substitutor)
|
it.typeRef.coneType.substitute(substitutor)
|
||||||
@@ -247,7 +245,7 @@ class FirClassSubstitutionScope(
|
|||||||
if (newReceiverType == null &&
|
if (newReceiverType == null &&
|
||||||
newReturnType == null &&
|
newReturnType == null &&
|
||||||
newTypeParameters === member.typeParameters &&
|
newTypeParameters === member.typeParameters &&
|
||||||
fakeOverrideSubstitution == null &&
|
callableCopySubstitutionForTypeUpdater == null &&
|
||||||
newContextReceiverTypes.all { it == null }
|
newContextReceiverTypes.all { it == null }
|
||||||
) {
|
) {
|
||||||
if (original.dispatchReceiverType?.substitute(substitutor) != null) {
|
if (original.dispatchReceiverType?.substitute(substitutor) != null) {
|
||||||
@@ -277,7 +275,7 @@ class FirClassSubstitutionScope(
|
|||||||
newReturnType,
|
newReturnType,
|
||||||
newTypeParameters as List<FirTypeParameter>,
|
newTypeParameters as List<FirTypeParameter>,
|
||||||
makeExpect,
|
makeExpect,
|
||||||
fakeOverrideSubstitution
|
callableCopySubstitutionForTypeUpdater
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -287,7 +285,7 @@ class FirClassSubstitutionScope(
|
|||||||
val receiverType: ConeKotlinType?,
|
val receiverType: ConeKotlinType?,
|
||||||
val returnType: ConeKotlinType?,
|
val returnType: ConeKotlinType?,
|
||||||
val substitutor: ConeSubstitutor,
|
val substitutor: ConeSubstitutor,
|
||||||
val fakeOverrideSubstitution: FakeOverrideSubstitution?
|
val callableCopySubstitution: CallableCopySubstitution?
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun createSubstitutedData(member: FirCallableDeclaration, symbolForOverride: FirBasedSymbol<*>): SubstitutedData {
|
private fun createSubstitutedData(member: FirCallableDeclaration, symbolForOverride: FirBasedSymbol<*>): SubstitutedData {
|
||||||
@@ -309,7 +307,7 @@ class FirClassSubstitutionScope(
|
|||||||
val newDispatchReceiverType = dispatchReceiverTypeForSubstitutedMembers.substitute(substitutor)
|
val newDispatchReceiverType = dispatchReceiverTypeForSubstitutedMembers.substitute(substitutor)
|
||||||
|
|
||||||
val returnType = member.returnTypeRef.coneTypeSafe<ConeKotlinType>()
|
val returnType = member.returnTypeRef.coneTypeSafe<ConeKotlinType>()
|
||||||
val fakeOverrideSubstitution = runIf(returnType == null) { FakeOverrideSubstitution(substitutor, member.symbol) }
|
val callableCopySubstitution = runIf(returnType == null) { CallableCopySubstitution(substitutor, member.symbol) }
|
||||||
val newReturnType = returnType?.substitute(substitutor)
|
val newReturnType = returnType?.substitute(substitutor)
|
||||||
return SubstitutedData(
|
return SubstitutedData(
|
||||||
newTypeParameters,
|
newTypeParameters,
|
||||||
@@ -317,7 +315,7 @@ class FirClassSubstitutionScope(
|
|||||||
newReceiverType,
|
newReceiverType,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
substitutor,
|
substitutor,
|
||||||
fakeOverrideSubstitution
|
callableCopySubstitution
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ class FirDelegatedMemberScope(
|
|||||||
private fun buildScope(delegateField: FirField): FirTypeScope? = delegateField.symbol.resolvedReturnType.scope(
|
private fun buildScope(delegateField: FirField): FirTypeScope? = delegateField.symbol.resolvedReturnType.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.Forced,
|
CallableCopyTypeCalculator.Forced,
|
||||||
requiredMembersPhase = null,
|
requiredMembersPhase = null,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.fir.expressions.FirOperationNameConventions
|
|||||||
import org.jetbrains.kotlin.fir.moduleData
|
import org.jetbrains.kotlin.fir.moduleData
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -65,7 +65,7 @@ class FirDynamicScope @FirDynamicScopeConstructor constructor(
|
|||||||
session.builtinTypes.anyType.type.scope(
|
session.builtinTypes.anyType.type.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = null,
|
requiredMembersPhase = null,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+47
-41
@@ -17,8 +17,8 @@ import org.jetbrains.kotlin.fir.declarations.utils.*
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideSubstitution
|
import org.jetbrains.kotlin.fir.scopes.CallableCopySubstitution
|
||||||
import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution
|
import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
@@ -44,11 +44,13 @@ object FirFakeOverrideGenerator {
|
|||||||
newParameterTypes: List<ConeKotlinType?>? = null,
|
newParameterTypes: List<ConeKotlinType?>? = null,
|
||||||
newTypeParameters: List<FirTypeParameter>? = null,
|
newTypeParameters: List<FirTypeParameter>? = null,
|
||||||
isExpect: Boolean = baseFunction.isExpect,
|
isExpect: Boolean = baseFunction.isExpect,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution? = null
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? = null
|
||||||
): FirNamedFunctionSymbol {
|
): FirNamedFunctionSymbol {
|
||||||
createSubstitutionOverrideFunction(
|
createSubstitutionOverrideFunction(
|
||||||
symbolForSubstitutionOverride, session, baseFunction, derivedClassLookupTag, newDispatchReceiverType, newReceiverType,
|
symbolForSubstitutionOverride, session, baseFunction, derivedClassLookupTag,
|
||||||
newContextReceiverTypes, newReturnType, newParameterTypes, newTypeParameters, isExpect, fakeOverrideSubstitution, origin,
|
newDispatchReceiverType, newReceiverType, newContextReceiverTypes,
|
||||||
|
newReturnType, newParameterTypes, newTypeParameters,
|
||||||
|
isExpect, callableCopySubstitutionForTypeUpdater, origin,
|
||||||
)
|
)
|
||||||
return symbolForSubstitutionOverride
|
return symbolForSubstitutionOverride
|
||||||
}
|
}
|
||||||
@@ -73,7 +75,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newParameterTypes: List<ConeKotlinType?>?,
|
newParameterTypes: List<ConeKotlinType?>?,
|
||||||
newTypeParameters: List<FirTypeParameter>?,
|
newTypeParameters: List<FirTypeParameter>?,
|
||||||
isExpect: Boolean = baseFunction.isExpect,
|
isExpect: Boolean = baseFunction.isExpect,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?,
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?,
|
||||||
origin: FirDeclarationOrigin.SubstitutionOverride,
|
origin: FirDeclarationOrigin.SubstitutionOverride,
|
||||||
): FirSimpleFunction {
|
): FirSimpleFunction {
|
||||||
// TODO: consider using here some light-weight functions instead of pseudo-real FirMemberFunctionImpl
|
// TODO: consider using here some light-weight functions instead of pseudo-real FirMemberFunctionImpl
|
||||||
@@ -91,7 +93,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType,
|
newReceiverType,
|
||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
fakeOverrideSubstitution = fakeOverrideSubstitution
|
callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
).apply {
|
).apply {
|
||||||
originalForSubstitutionOverrideAttr = baseFunction
|
originalForSubstitutionOverrideAttr = baseFunction
|
||||||
}
|
}
|
||||||
@@ -112,7 +114,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReturnType: ConeKotlinType? = null,
|
newReturnType: ConeKotlinType? = null,
|
||||||
newModality: Modality? = null,
|
newModality: Modality? = null,
|
||||||
newVisibility: Visibility? = null,
|
newVisibility: Visibility? = null,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution? = null
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? = null
|
||||||
): FirSimpleFunction {
|
): FirSimpleFunction {
|
||||||
checkStatusIsResolved(baseFunction)
|
checkStatusIsResolved(baseFunction)
|
||||||
|
|
||||||
@@ -129,7 +131,7 @@ object FirFakeOverrideGenerator {
|
|||||||
attributes = baseFunction.attributes.copy()
|
attributes = baseFunction.attributes.copy()
|
||||||
typeParameters += configureAnnotationsTypeParametersAndSignature(
|
typeParameters += configureAnnotationsTypeParametersAndSignature(
|
||||||
session, baseFunction, newParameterTypes, newTypeParameters,
|
session, baseFunction, newParameterTypes, newTypeParameters,
|
||||||
newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, newSymbol
|
newReceiverType, newContextReceiverTypes, newReturnType, callableCopySubstitutionForTypeUpdater, newSymbol
|
||||||
).filterIsInstance<FirTypeParameter>()
|
).filterIsInstance<FirTypeParameter>()
|
||||||
deprecationsProvider = baseFunction.deprecationsProvider
|
deprecationsProvider = baseFunction.deprecationsProvider
|
||||||
}.apply {
|
}.apply {
|
||||||
@@ -149,7 +151,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newContextReceiverTypes: List<ConeKotlinType?>?,
|
newContextReceiverTypes: List<ConeKotlinType?>?,
|
||||||
newTypeParameters: List<FirTypeParameterRef>?,
|
newTypeParameters: List<FirTypeParameterRef>?,
|
||||||
isExpect: Boolean,
|
isExpect: Boolean,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?
|
||||||
): FirConstructor {
|
): FirConstructor {
|
||||||
checkStatusIsResolved(baseConstructor)
|
checkStatusIsResolved(baseConstructor)
|
||||||
|
|
||||||
@@ -176,7 +178,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType = null,
|
newReceiverType = null,
|
||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
fakeOverrideSubstitution,
|
callableCopySubstitutionForTypeUpdater,
|
||||||
fakeOverrideSymbol
|
fakeOverrideSymbol
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -200,7 +202,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType: ConeKotlinType?,
|
newReceiverType: ConeKotlinType?,
|
||||||
newContextReceiverTypes: List<ConeKotlinType?>?,
|
newContextReceiverTypes: List<ConeKotlinType?>?,
|
||||||
newReturnType: ConeKotlinType?,
|
newReturnType: ConeKotlinType?,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?,
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?,
|
||||||
symbolForOverride: FirFunctionSymbol<*>,
|
symbolForOverride: FirFunctionSymbol<*>,
|
||||||
): List<FirTypeParameterRef> {
|
): List<FirTypeParameterRef> {
|
||||||
return when {
|
return when {
|
||||||
@@ -212,7 +214,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType,
|
newReceiverType,
|
||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
fakeOverrideSubstitution,
|
callableCopySubstitutionForTypeUpdater,
|
||||||
origin,
|
origin,
|
||||||
)
|
)
|
||||||
emptyList()
|
emptyList()
|
||||||
@@ -228,9 +230,9 @@ object FirFakeOverrideGenerator {
|
|||||||
val (copiedReceiverType, copiedContextReceiverTypes, possibleReturnType) = substituteReceiverAndReturnType(
|
val (copiedReceiverType, copiedContextReceiverTypes, possibleReturnType) = substituteReceiverAndReturnType(
|
||||||
baseFunction as FirCallableDeclaration, newReceiverType, newContextReceiverTypes, newReturnType, substitutor
|
baseFunction as FirCallableDeclaration, newReceiverType, newContextReceiverTypes, newReturnType, substitutor
|
||||||
)
|
)
|
||||||
val (copiedReturnType, newFakeOverrideSubstitution) = when (possibleReturnType) {
|
val (copiedReturnType, newCallableCopySubstitutionForTypeUpdater) = when (possibleReturnType) {
|
||||||
is Maybe.Value -> possibleReturnType.value to null
|
is Maybe.Value -> possibleReturnType.value to null
|
||||||
else -> null to FakeOverrideSubstitution(substitutor, symbol)
|
else -> null to CallableCopySubstitution(substitutor, symbol)
|
||||||
}
|
}
|
||||||
configureAnnotationsAndSignature(
|
configureAnnotationsAndSignature(
|
||||||
baseFunction,
|
baseFunction,
|
||||||
@@ -239,7 +241,7 @@ object FirFakeOverrideGenerator {
|
|||||||
copiedReceiverType,
|
copiedReceiverType,
|
||||||
copiedContextReceiverTypes,
|
copiedContextReceiverTypes,
|
||||||
copiedReturnType,
|
copiedReturnType,
|
||||||
newFakeOverrideSubstitution,
|
newCallableCopySubstitutionForTypeUpdater,
|
||||||
origin,
|
origin,
|
||||||
)
|
)
|
||||||
copiedTypeParameters
|
copiedTypeParameters
|
||||||
@@ -252,7 +254,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType,
|
newReceiverType,
|
||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
fakeOverrideSubstitution,
|
callableCopySubstitutionForTypeUpdater,
|
||||||
origin,
|
origin,
|
||||||
)
|
)
|
||||||
newTypeParameters
|
newTypeParameters
|
||||||
@@ -267,19 +269,20 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType: ConeKotlinType?,
|
newReceiverType: ConeKotlinType?,
|
||||||
newContextReceiverTypes: List<ConeKotlinType?>?,
|
newContextReceiverTypes: List<ConeKotlinType?>?,
|
||||||
newReturnType: ConeKotlinType?,
|
newReturnType: ConeKotlinType?,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?,
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?,
|
||||||
origin: FirDeclarationOrigin,
|
origin: FirDeclarationOrigin,
|
||||||
) {
|
) {
|
||||||
annotations += baseFunction.annotations
|
annotations += baseFunction.annotations
|
||||||
|
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
val fakeOverrideSubstitution = fakeOverrideSubstitution ?: runIf(baseFunction.returnTypeRef is FirImplicitTypeRef) {
|
val callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
FakeOverrideSubstitution(ConeSubstitutor.Empty, baseFunction.symbol)
|
?: runIf(baseFunction.returnTypeRef is FirImplicitTypeRef) {
|
||||||
}
|
CallableCopySubstitution(ConeSubstitutor.Empty, baseFunction.symbol)
|
||||||
|
}
|
||||||
|
|
||||||
if (fakeOverrideSubstitution != null) {
|
if (callableCopySubstitutionForTypeUpdater != null) {
|
||||||
returnTypeRef = FirImplicitTypeRefImplWithoutSource
|
returnTypeRef = FirImplicitTypeRefImplWithoutSource
|
||||||
attributes.fakeOverrideSubstitution = fakeOverrideSubstitution
|
attributes.callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
} else {
|
} else {
|
||||||
returnTypeRef = baseFunction.returnTypeRef.withReplacedReturnType(newReturnType)
|
returnTypeRef = baseFunction.returnTypeRef.withReplacedReturnType(newReturnType)
|
||||||
}
|
}
|
||||||
@@ -325,12 +328,12 @@ object FirFakeOverrideGenerator {
|
|||||||
newReturnType: ConeKotlinType? = null,
|
newReturnType: ConeKotlinType? = null,
|
||||||
newTypeParameters: List<FirTypeParameter>? = null,
|
newTypeParameters: List<FirTypeParameter>? = null,
|
||||||
isExpect: Boolean = baseProperty.isExpect,
|
isExpect: Boolean = baseProperty.isExpect,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution? = null
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? = null
|
||||||
): FirPropertySymbol {
|
): FirPropertySymbol {
|
||||||
createCopyForFirProperty(
|
createCopyForFirProperty(
|
||||||
symbolForSubstitutionOverride, baseProperty, derivedClassLookupTag, session, origin,
|
symbolForSubstitutionOverride, baseProperty, derivedClassLookupTag, session, origin,
|
||||||
isExpect, newDispatchReceiverType, newTypeParameters, newReceiverType, newContextReceiverTypes, newReturnType,
|
isExpect, newDispatchReceiverType, newTypeParameters, newReceiverType, newContextReceiverTypes, newReturnType,
|
||||||
fakeOverrideSubstitution = fakeOverrideSubstitution
|
callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
).apply {
|
).apply {
|
||||||
originalForSubstitutionOverrideAttr = baseProperty
|
originalForSubstitutionOverrideAttr = baseProperty
|
||||||
}
|
}
|
||||||
@@ -359,7 +362,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReturnType: ConeKotlinType? = null,
|
newReturnType: ConeKotlinType? = null,
|
||||||
newModality: Modality? = null,
|
newModality: Modality? = null,
|
||||||
newVisibility: Visibility? = null,
|
newVisibility: Visibility? = null,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution? = null
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? = null
|
||||||
): FirProperty {
|
): FirProperty {
|
||||||
checkStatusIsResolved(baseProperty)
|
checkStatusIsResolved(baseProperty)
|
||||||
|
|
||||||
@@ -383,7 +386,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType,
|
newReceiverType,
|
||||||
newContextReceiverTypes,
|
newContextReceiverTypes,
|
||||||
newReturnType,
|
newReturnType,
|
||||||
fakeOverrideSubstitution
|
callableCopySubstitutionForTypeUpdater
|
||||||
)
|
)
|
||||||
deprecationsProvider = baseProperty.deprecationsProvider
|
deprecationsProvider = baseProperty.deprecationsProvider
|
||||||
|
|
||||||
@@ -510,7 +513,7 @@ object FirFakeOverrideGenerator {
|
|||||||
newReturnType: ConeKotlinType? = null,
|
newReturnType: ConeKotlinType? = null,
|
||||||
newModality: Modality? = null,
|
newModality: Modality? = null,
|
||||||
newVisibility: Visibility? = null,
|
newVisibility: Visibility? = null,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution? = null
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution? = null
|
||||||
): FirField {
|
): FirField {
|
||||||
return buildField {
|
return buildField {
|
||||||
source = baseField.source
|
source = baseField.source
|
||||||
@@ -525,7 +528,8 @@ object FirFakeOverrideGenerator {
|
|||||||
dispatchReceiverType = newDispatchReceiverType
|
dispatchReceiverType = newDispatchReceiverType
|
||||||
attributes = baseField.attributes.copy()
|
attributes = baseField.attributes.copy()
|
||||||
configureAnnotationsAndSignature(
|
configureAnnotationsAndSignature(
|
||||||
baseField, newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution, updateReceiver = false
|
baseField, newReceiverType, newContextReceiverTypes, newReturnType,
|
||||||
|
callableCopySubstitutionForTypeUpdater, updateReceiver = false
|
||||||
)
|
)
|
||||||
deprecationsProvider = baseField.deprecationsProvider
|
deprecationsProvider = baseField.deprecationsProvider
|
||||||
}.apply {
|
}.apply {
|
||||||
@@ -540,12 +544,12 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType: ConeKotlinType?,
|
newReceiverType: ConeKotlinType?,
|
||||||
newContextReceiverTypes: List<ConeKotlinType?>?,
|
newContextReceiverTypes: List<ConeKotlinType?>?,
|
||||||
newReturnType: ConeKotlinType?,
|
newReturnType: ConeKotlinType?,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?
|
||||||
): List<FirTypeParameter> {
|
): List<FirTypeParameter> {
|
||||||
return when {
|
return when {
|
||||||
baseProperty.typeParameters.isEmpty() -> {
|
baseProperty.typeParameters.isEmpty() -> {
|
||||||
configureAnnotationsAndSignature(
|
configureAnnotationsAndSignature(
|
||||||
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution
|
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, callableCopySubstitutionForTypeUpdater
|
||||||
)
|
)
|
||||||
emptyList()
|
emptyList()
|
||||||
}
|
}
|
||||||
@@ -556,18 +560,19 @@ object FirFakeOverrideGenerator {
|
|||||||
val (copiedReceiverType, copiedContextReceiverTypes, possibleReturnType) = substituteReceiverAndReturnType(
|
val (copiedReceiverType, copiedContextReceiverTypes, possibleReturnType) = substituteReceiverAndReturnType(
|
||||||
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, substitutor
|
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, substitutor
|
||||||
)
|
)
|
||||||
val (copiedReturnType, newFakeOverrideSubstitution) = when (possibleReturnType) {
|
val (copiedReturnType, newCallableCopySubstitutionForTypeUpdater) = when (possibleReturnType) {
|
||||||
is Maybe.Value -> possibleReturnType.value to null
|
is Maybe.Value -> possibleReturnType.value to null
|
||||||
else -> null to FakeOverrideSubstitution(substitutor, baseProperty.symbol)
|
else -> null to CallableCopySubstitution(substitutor, baseProperty.symbol)
|
||||||
}
|
}
|
||||||
configureAnnotationsAndSignature(
|
configureAnnotationsAndSignature(
|
||||||
baseProperty, copiedReceiverType, copiedContextReceiverTypes, copiedReturnType, newFakeOverrideSubstitution
|
baseProperty, copiedReceiverType, copiedContextReceiverTypes,
|
||||||
|
copiedReturnType, newCallableCopySubstitutionForTypeUpdater
|
||||||
)
|
)
|
||||||
copiedTypeParameters.filterIsInstance<FirTypeParameter>()
|
copiedTypeParameters.filterIsInstance<FirTypeParameter>()
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
configureAnnotationsAndSignature(
|
configureAnnotationsAndSignature(
|
||||||
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, fakeOverrideSubstitution
|
baseProperty, newReceiverType, newContextReceiverTypes, newReturnType, callableCopySubstitutionForTypeUpdater
|
||||||
)
|
)
|
||||||
newTypeParameters
|
newTypeParameters
|
||||||
}
|
}
|
||||||
@@ -611,19 +616,20 @@ object FirFakeOverrideGenerator {
|
|||||||
newReceiverType: ConeKotlinType?,
|
newReceiverType: ConeKotlinType?,
|
||||||
newContextReceiverTypes: List<ConeKotlinType?>?,
|
newContextReceiverTypes: List<ConeKotlinType?>?,
|
||||||
newReturnType: ConeKotlinType?,
|
newReturnType: ConeKotlinType?,
|
||||||
fakeOverrideSubstitution: FakeOverrideSubstitution?,
|
callableCopySubstitutionForTypeUpdater: CallableCopySubstitution?,
|
||||||
updateReceiver: Boolean = true
|
updateReceiver: Boolean = true
|
||||||
) {
|
) {
|
||||||
annotations += baseVariable.annotations
|
annotations += baseVariable.annotations
|
||||||
|
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
val fakeOverrideSubstitution = fakeOverrideSubstitution ?: runIf(baseVariable.returnTypeRef is FirImplicitTypeRef) {
|
val callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
FakeOverrideSubstitution(ConeSubstitutor.Empty, baseVariable.symbol)
|
?: runIf(baseVariable.returnTypeRef is FirImplicitTypeRef) {
|
||||||
}
|
CallableCopySubstitution(ConeSubstitutor.Empty, baseVariable.symbol)
|
||||||
|
}
|
||||||
|
|
||||||
if (fakeOverrideSubstitution != null) {
|
if (callableCopySubstitutionForTypeUpdater != null) {
|
||||||
returnTypeRef = FirImplicitTypeRefImplWithoutSource
|
returnTypeRef = FirImplicitTypeRefImplWithoutSource
|
||||||
attributes.fakeOverrideSubstitution = fakeOverrideSubstitution
|
attributes.callableCopySubstitutionForTypeUpdater = callableCopySubstitutionForTypeUpdater
|
||||||
} else {
|
} else {
|
||||||
returnTypeRef = baseVariable.returnTypeRef.withReplacedReturnType(newReturnType)
|
returnTypeRef = baseVariable.returnTypeRef.withReplacedReturnType(newReturnType)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-4
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.scopeSessionKey
|
import org.jetbrains.kotlin.fir.resolve.scopeSessionKey
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.getFunctions
|
import org.jetbrains.kotlin.fir.scopes.getFunctions
|
||||||
@@ -21,9 +21,7 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
|||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.utils.exceptions.withConeTypeEntry
|
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment
|
|
||||||
import kotlin.contracts.ExperimentalContracts
|
import kotlin.contracts.ExperimentalContracts
|
||||||
import kotlin.contracts.contract
|
import kotlin.contracts.contract
|
||||||
|
|
||||||
@@ -41,7 +39,7 @@ class FirIntegerConstantOperatorScope(
|
|||||||
baseType.scope(
|
baseType.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: Empty
|
) ?: Empty
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-4
@@ -8,16 +8,22 @@ package org.jetbrains.kotlin.fir.scopes.impl
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.isDelegated
|
import org.jetbrains.kotlin.fir.isDelegated
|
||||||
import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride
|
import org.jetbrains.kotlin.fir.isSubstitutionOrIntersectionOverride
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirDelegatingTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirDelegatingTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class FirScopeWithFakeOverrideTypeCalculator(
|
/**
|
||||||
|
* This scope is a wrapper which is intended to use with scopes that can create callable copies.
|
||||||
|
*
|
||||||
|
* The main purpose of this scope is to update dispatched callables return types
|
||||||
|
* in case it is not yet calculated due to implicit body resolve logic.
|
||||||
|
*/
|
||||||
|
class FirScopeWithCallableCopyReturnTypeUpdater(
|
||||||
private val delegate: FirTypeScope,
|
private val delegate: FirTypeScope,
|
||||||
private val fakeOverrideTypeCalculator: FakeOverrideTypeCalculator
|
private val callableCopyTypeCalculator: CallableCopyTypeCalculator
|
||||||
) : FirDelegatingTypeScope(delegate) {
|
) : FirDelegatingTypeScope(delegate) {
|
||||||
override fun processFunctionsByName(name: Name, processor: (FirNamedFunctionSymbol) -> Unit) {
|
override fun processFunctionsByName(name: Name, processor: (FirNamedFunctionSymbol) -> Unit) {
|
||||||
delegate.processFunctionsByName(name) {
|
delegate.processFunctionsByName(name) {
|
||||||
@@ -55,7 +61,7 @@ class FirScopeWithFakeOverrideTypeCalculator(
|
|||||||
|
|
||||||
private fun updateReturnType(declaration: FirCallableDeclaration) {
|
private fun updateReturnType(declaration: FirCallableDeclaration) {
|
||||||
if (declaration.isSubstitutionOrIntersectionOverride || declaration.isDelegated) {
|
if (declaration.isSubstitutionOrIntersectionOverride || declaration.isDelegated) {
|
||||||
fakeOverrideTypeCalculator.computeReturnType(declaration)
|
callableCopyTypeCalculator.computeReturnType(declaration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions
|
import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions
|
||||||
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
||||||
@@ -191,16 +191,16 @@ fun ConeKotlinType.findContributedInvokeSymbol(
|
|||||||
): FirFunctionSymbol<*>? {
|
): FirFunctionSymbol<*>? {
|
||||||
val baseInvokeSymbol = expectedFunctionType.findBaseInvokeSymbol(session, scopeSession) ?: return null
|
val baseInvokeSymbol = expectedFunctionType.findBaseInvokeSymbol(session, scopeSession) ?: return null
|
||||||
|
|
||||||
val fakeOverrideTypeCalculator = if (shouldCalculateReturnTypesOfFakeOverrides) {
|
val callableCopyTypeCalculator = if (shouldCalculateReturnTypesOfFakeOverrides) {
|
||||||
FakeOverrideTypeCalculator.Forced
|
CallableCopyTypeCalculator.Forced
|
||||||
} else {
|
} else {
|
||||||
FakeOverrideTypeCalculator.DoNothing
|
CallableCopyTypeCalculator.DoNothing
|
||||||
}
|
}
|
||||||
|
|
||||||
val scope = scope(
|
val scope = scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = fakeOverrideTypeCalculator,
|
callableCopyTypeCalculator = callableCopyTypeCalculator,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return null
|
) ?: return null
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.resolve.*
|
|||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnsupportedCallableReferenceTarget
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnsupportedCallableReferenceTarget
|
||||||
import org.jetbrains.kotlin.fir.resolve.inference.extractInputOutputTypesFromCallableReferenceExpectedType
|
import org.jetbrains.kotlin.fir.resolve.inference.extractInputOutputTypesFromCallableReferenceExpectedType
|
||||||
import org.jetbrains.kotlin.fir.resolve.inference.model.ConeArgumentConstraintPosition
|
import org.jetbrains.kotlin.fir.resolve.inference.model.ConeArgumentConstraintPosition
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.utils.exceptions.withConeTypeEntry
|
import org.jetbrains.kotlin.fir.utils.exceptions.withConeTypeEntry
|
||||||
@@ -176,7 +176,7 @@ private fun BodyResolveComponents.getCallableReferenceAdaptation(
|
|||||||
val originScope = function.dispatchReceiverType?.scope(
|
val originScope = function.dispatchReceiverType?.scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.declarations.*
|
|||||||
import org.jetbrains.kotlin.fir.declarations.utils.isInner
|
import org.jetbrains.kotlin.fir.declarations.utils.isInner
|
||||||
import org.jetbrains.kotlin.fir.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.TypeAliasConstructorsSubstitutingScope
|
import org.jetbrains.kotlin.fir.scopes.impl.TypeAliasConstructorsSubstitutingScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
import org.jetbrains.kotlin.fir.scopes.processClassifiersByName
|
||||||
@@ -172,7 +172,7 @@ private fun processConstructors(
|
|||||||
val basicScope = type.scope(
|
val basicScope = type.scope(
|
||||||
session,
|
session,
|
||||||
bodyResolveComponents.scopeSession,
|
bodyResolveComponents.scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.references.FirNamedReference
|
|||||||
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
|
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
import org.jetbrains.kotlin.fir.resolve.toSymbol
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.*
|
import org.jetbrains.kotlin.fir.types.*
|
||||||
import org.jetbrains.kotlin.fir.unwrapFakeOverrides
|
import org.jetbrains.kotlin.fir.unwrapFakeOverrides
|
||||||
@@ -132,7 +132,7 @@ private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name:
|
|||||||
type.scope(
|
type.scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)?.processFunctionsByName(name) { add(it.fir) }
|
)?.processFunctionsByName(name) { add(it.fir) }
|
||||||
}
|
}
|
||||||
@@ -142,7 +142,7 @@ private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name:
|
|||||||
type.scope(
|
type.scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)?.processPropertiesByName(name) { addIfNotNull(it.fir as? FirVariable) }
|
)?.processPropertiesByName(name) { addIfNotNull(it.fir as? FirVariable) }
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -90,7 +90,7 @@ class MemberScopeTowerLevel(
|
|||||||
?.scope(
|
?.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
bodyResolveComponents.returnTypeCalculator.fakeOverrideTypeCalculator,
|
bodyResolveComponents.returnTypeCalculator.callableCopyTypeCalculator,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -135,7 +135,7 @@ class MemberScopeTowerLevel(
|
|||||||
useSiteForSyntheticScope = typeForSyntheticScope.scope(
|
useSiteForSyntheticScope = typeForSyntheticScope.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: errorWithAttachment("No scope for flexible type scope, while it's not null") {
|
) ?: errorWithAttachment("No scope for flexible type scope, while it's not null") {
|
||||||
withConeTypeEntry("dispatchReceiverType", dispatchReceiverType)
|
withConeTypeEntry("dispatchReceiverType", dispatchReceiverType)
|
||||||
|
|||||||
+2
-2
@@ -27,7 +27,7 @@ import org.jetbrains.kotlin.fir.resolve.inference.ResolvedLambdaAtom
|
|||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.*
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.*
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.ConvertibleIntegerOperators.binaryOperatorsWithSignedArgument
|
import org.jetbrains.kotlin.fir.scopes.impl.ConvertibleIntegerOperators.binaryOperatorsWithSignedArgument
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
|
import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.isWrappedIntegerOperator
|
import org.jetbrains.kotlin.fir.scopes.impl.isWrappedIntegerOperator
|
||||||
@@ -223,7 +223,7 @@ class FirCallCompletionResultsWriterTransformer(
|
|||||||
updatedDispatchReceiverType.scope(
|
updatedDispatchReceiverType.scope(
|
||||||
session,
|
session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
FirResolvePhase.STATUS
|
FirResolvePhase.STATUS
|
||||||
) as? FirClassSubstitutionScope ?: return null
|
) as? FirClassSubstitutionScope ?: return null
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
|||||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||||
import org.jetbrains.kotlin.fir.resolve.scope
|
import org.jetbrains.kotlin.fir.resolve.scope
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.resultType
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.getFunctions
|
import org.jetbrains.kotlin.fir.scopes.getFunctions
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator
|
import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||||
@@ -49,7 +49,7 @@ class IntegerLiteralAndOperatorApproximationTransformer(
|
|||||||
return receiverType.type.scope(
|
return receiverType.type.scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession = scopeSession,
|
scopeSession = scopeSession,
|
||||||
fakeOverrideTypeCalculator = FakeOverrideTypeCalculator.DoNothing,
|
callableCopyTypeCalculator = CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
)!!.getFunctions(name).single()
|
)!!.getFunctions(name).single()
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-10
@@ -22,15 +22,14 @@ import org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveP
|
|||||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
|
import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculatorForFullBodyResolve
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.runContractResolveForLocalClass
|
import org.jetbrains.kotlin.fir.resolve.transformers.contracts.runContractResolveForLocalClass
|
||||||
import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator
|
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||||
import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution
|
import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator
|
import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
|
||||||
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
|
||||||
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
||||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
import org.jetbrains.kotlin.util.PrivateForInline
|
import org.jetbrains.kotlin.util.PrivateForInline
|
||||||
@@ -178,7 +177,7 @@ open class ReturnTypeCalculatorWithJump(
|
|||||||
val designationMapForLocalClasses: Map<FirCallableDeclaration, List<FirClassLikeDeclaration>> = mapOf(),
|
val designationMapForLocalClasses: Map<FirCallableDeclaration, List<FirClassLikeDeclaration>> = mapOf(),
|
||||||
private val nonLocalDeclarationResolver: ReturnTypeCalculatorWithJump? = null,
|
private val nonLocalDeclarationResolver: ReturnTypeCalculatorWithJump? = null,
|
||||||
) : ReturnTypeCalculator() {
|
) : ReturnTypeCalculator() {
|
||||||
override val fakeOverrideTypeCalculator: FakeOverrideTypeCalculator = FakeOverrideTypeCalculatorWithJump()
|
override val callableCopyTypeCalculator: CallableCopyTypeCalculator = CallableCopyTypeCalculatorWithJump()
|
||||||
|
|
||||||
@OptIn(PrivateForInline::class)
|
@OptIn(PrivateForInline::class)
|
||||||
var outerBodyResolveContext: BodyResolveContext? = null
|
var outerBodyResolveContext: BodyResolveContext? = null
|
||||||
@@ -230,16 +229,16 @@ open class ReturnTypeCalculatorWithJump(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (declaration.isSubstitutionOrIntersectionOverride) {
|
if (declaration.isSubstitutionOrIntersectionOverride) {
|
||||||
val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution
|
val callableCopySubstitutionForTypeUpdater = declaration.attributes.callableCopySubstitutionForTypeUpdater
|
||||||
?: return declaration.returnTypeRef as FirResolvedTypeRef
|
?: return declaration.returnTypeRef as FirResolvedTypeRef
|
||||||
|
|
||||||
// TODO: drop synchronized in KT-60385
|
// TODO: drop synchronized in KT-60385
|
||||||
synchronized(fakeOverrideSubstitution) {
|
synchronized(callableCopySubstitutionForTypeUpdater) {
|
||||||
if (declaration.attributes.fakeOverrideSubstitution == null) {
|
if (declaration.attributes.callableCopySubstitutionForTypeUpdater == null) {
|
||||||
return declaration.returnTypeRef as FirResolvedTypeRef
|
return declaration.returnTypeRef as FirResolvedTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
val (substitutor, baseSymbol) = callableCopySubstitutionForTypeUpdater
|
||||||
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
||||||
val baseReturnTypeRef = tryCalculateReturnType(baseDeclaration)
|
val baseReturnTypeRef = tryCalculateReturnType(baseDeclaration)
|
||||||
val baseReturnType = baseReturnTypeRef.type
|
val baseReturnType = baseReturnTypeRef.type
|
||||||
@@ -251,7 +250,7 @@ open class ReturnTypeCalculatorWithJump(
|
|||||||
declaration.setter?.valueParameters?.firstOrNull()?.replaceReturnTypeRef(returnType)
|
declaration.setter?.valueParameters?.firstOrNull()?.replaceReturnTypeRef(returnType)
|
||||||
}
|
}
|
||||||
|
|
||||||
declaration.attributes.fakeOverrideSubstitution = null
|
declaration.attributes.callableCopySubstitutionForTypeUpdater = null
|
||||||
return returnType
|
return returnType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -340,7 +339,7 @@ open class ReturnTypeCalculatorWithJump(
|
|||||||
return newReturnTypeRef
|
return newReturnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
private inner class FakeOverrideTypeCalculatorWithJump : FakeOverrideTypeCalculator.AbstractFakeOverrideTypeCalculator() {
|
private inner class CallableCopyTypeCalculatorWithJump : CallableCopyTypeCalculator.AbstractCallableCopyTypeCalculator() {
|
||||||
override fun FirCallableDeclaration.getResolvedTypeRef(): FirResolvedTypeRef? {
|
override fun FirCallableDeclaration.getResolvedTypeRef(): FirResolvedTypeRef? {
|
||||||
return this@ReturnTypeCalculatorWithJump.computeReturnTypeRef(this)
|
return this@ReturnTypeCalculatorWithJump.computeReturnTypeRef(this)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -178,7 +178,7 @@ class FirExpectActualMatchingContextImpl private constructor(
|
|||||||
val scope = symbol.defaultType().scope(
|
val scope = symbol.defaultType().scope(
|
||||||
useSiteSession = session,
|
useSiteSession = session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return emptyList()
|
) ?: return emptyList()
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ class FirExpectActualMatchingContextImpl private constructor(
|
|||||||
val scope = symbol.defaultType().scope(
|
val scope = symbol.defaultType().scope(
|
||||||
useSiteSession = symbol.moduleData.session,
|
useSiteSession = symbol.moduleData.session,
|
||||||
scopeSession,
|
scopeSession,
|
||||||
FakeOverrideTypeCalculator.DoNothing,
|
CallableCopyTypeCalculator.DoNothing,
|
||||||
requiredMembersPhase = FirResolvePhase.STATUS,
|
requiredMembersPhase = FirResolvePhase.STATUS,
|
||||||
) ?: return emptyList()
|
) ?: return emptyList()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user