From 4a87ae9e04bc7581edf7ef6fa0d4af5b4da22d77 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Thu, 14 Dec 2023 15:17:38 +0100 Subject: [PATCH] [LL FIR] fix type annotations resolution for fake override declarations Fake overrides have annotations from a class from which type parameters were substituted, so we have to resolve them before the declaration. It worked before in most cases as an original containing class is a part of the designation path, so we considered annotations from such classes as our and just resolved them in the wrong scope without right locks ^KT-64243 --- .../LLFirAnnotationArgumentsLazyResolver.kt | 21 +++++++ .../LLFirImplicitTypesLazyResolver.kt | 52 +++++++--------- ...SymbolsForAnnotationResolutionAttribute.kt | 23 +++++++- .../api/fir/util/firCheckResolvedUtils.kt | 15 +++-- ...tTypeInsideClassWithSubstitution.after.txt | 59 +++++++++++++++++++ ...ImplicitTypeInsideClassWithSubstitution.kt | 2 - ...nsideClassWithSubstitutionScript.after.txt | 59 +++++++++++++++++++ ...tTypeInsideClassWithSubstitutionScript.kts | 2 - ...tTypeInsideClassWithSubstitution.after.txt | 59 +++++++++++++++++++ ...ImplicitTypeInsideClassWithSubstitution.kt | 2 - ...nsideClassWithSubstitutionScript.after.txt | 59 +++++++++++++++++++ ...tTypeInsideClassWithSubstitutionScript.kts | 2 - .../function.lazyResolve.txt | 4 +- .../functionScript.lazyResolve.txt | 4 +- .../functionUnavailable.lazyResolve.txt | 12 ++-- .../functionUnavailableScript.lazyResolve.txt | 12 ++-- .../implicitFunction.lazyResolve.txt | 4 +- .../implicitFunctionScript.lazyResolve.txt | 4 +- ...mplicitFunctionUnavailable.lazyResolve.txt | 12 ++-- ...tFunctionUnavailableScript.lazyResolve.txt | 12 ++-- .../implicitProperty.lazyResolve.txt | 4 +- ...mplicitPropertyAndReceiver.lazyResolve.txt | 4 +- ...tPropertyAndReceiverScript.lazyResolve.txt | 4 +- .../implicitPropertyScript.lazyResolve.txt | 4 +- ...mplicitPropertyUnavailable.lazyResolve.txt | 20 +++---- ...tPropertyUnavailableScript.lazyResolve.txt | 20 +++---- .../property.lazyResolve.txt | 4 +- .../propertyScript.lazyResolve.txt | 4 +- .../propertyUnavailable.lazyResolve.txt | 20 +++---- .../propertyUnavailableScript.lazyResolve.txt | 20 +++---- 30 files changed, 395 insertions(+), 128 deletions(-) create mode 100644 analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.after.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.after.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.after.txt create mode 100644 analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.after.txt diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt index 699879d8590..48b1a96b0ec 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirAnnotationArgumentsLazyResolver.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirEle import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.LLFirLockProvider import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.FirLazyBodiesCalculator import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.util.AnnotationVisitorVoid import org.jetbrains.kotlin.analysis.low.level.api.fir.util.checkAnnotationsAreResolved import org.jetbrains.kotlin.analysis.low.level.api.fir.util.forEachDependentDeclaration import org.jetbrains.kotlin.fir.* @@ -24,6 +25,7 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.plugin.FirAnnotationArgumentsTransformer import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.types.FirTypeProjection import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid @@ -120,6 +122,7 @@ private class LLFirAnnotationArgumentsTargetResolver( symbolsToResolve = buildList { target.forEachDeclarationWhichCanHavePostponedSymbols { addAll(it.postponedSymbolsForAnnotationResolution.orEmpty()) + addOriginalSymbolsForCopyDeclarations(it) } } } @@ -131,6 +134,24 @@ private class LLFirAnnotationArgumentsTargetResolver( return false } + private fun MutableList>.addOriginalSymbolsForCopyDeclarations(target: FirCallableDeclaration) { + if (!target.isSubstitutionOrIntersectionOverride) return + + // It is fine to just visit the declaration recursively as copy declarations don't have a body + target.accept(ForeignAnnotationsCollector, ForeignAnnotationsContext(this, target.symbol)) + } + + private class ForeignAnnotationsContext(val collection: MutableCollection>, val currentSymbol: FirCallableSymbol<*>) + private object ForeignAnnotationsCollector : AnnotationVisitorVoid() { + override fun visitAnnotation(annotation: FirAnnotation, data: ForeignAnnotationsContext) {} + override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: ForeignAnnotationsContext) { + val symbolToPostpone = annotationCall.containingDeclarationSymbol.symbolToPostponeIfCanBeResolvedOnDemand() ?: return + if (symbolToPostpone != data.currentSymbol) { + data.collection += symbolToPostpone + } + } + } + override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { resolveWithKeeper( target, diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt index 144a3591fa4..aa96c58c335 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/LLFirImplicitTypesLazyResolver.kt @@ -17,15 +17,14 @@ import org.jetbrains.kotlin.fir.FirFileAnnotationsContainer import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall +import org.jetbrains.kotlin.fir.isCopyCreatedInScope import org.jetbrains.kotlin.fir.resolve.ResolutionMode 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.FirResolveContextCollector import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession -import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.fir.util.setMultimapOf import org.jetbrains.kotlin.fir.utils.exceptions.withFirSymbolEntry @@ -59,7 +58,7 @@ internal class LLImplicitBodyResolveComputationSession : ImplicitBodyResolveComp */ private var anchorForForeignAnnotations: FirCallableSymbol<*>? = null - private inline fun withAnchorForForeignAnnotations(symbol: FirCallableSymbol<*>, action: () -> T): T { + inline fun withAnchorForForeignAnnotations(symbol: FirCallableSymbol<*>, action: () -> T): T { val previousSymbol = anchorForForeignAnnotations return try { anchorForForeignAnnotations = symbol @@ -88,16 +87,8 @@ internal class LLImplicitBodyResolveComputationSession : ImplicitBodyResolveComp */ fun postponeForeignAnnotationResolution(symbol: FirBasedSymbol<*>) { // We should unwrap local symbols to avoid recursion - val symbolToPostpone = when (symbol) { - is FirValueParameterSymbol -> symbol.containingFunctionSymbol - else -> symbol - } - // We cannot resolve them on demand, so we shouldn't postpone them - if (symbolToPostpone.cannotResolveAnnotationsOnDemand()) { - return - } - + val symbolToPostpone = symbol.symbolToPostponeIfCanBeResolvedOnDemand() ?: return val currentSymbol = anchorForForeignAnnotations ?: errorWithAttachment("Unexpected state: the current symbol have to be here") { withFirSymbolEntry("symbol to postpone", symbolToPostpone) } @@ -152,40 +143,44 @@ internal class LLFirImplicitBodyTargetResolver( } override fun doLazyResolveUnderLock(target: FirElementWithResolveState) { - when (target) { - is FirFunction -> { + when { + target is FirCallableDeclaration && target.isCopyCreatedInScope -> { + transformer.returnTypeCalculator.callableCopyTypeCalculator.computeReturnType(target) + } + + target is FirFunction -> { if (target.returnTypeRef is FirImplicitTypeRef) { resolve(target, BodyStateKeepers.FUNCTION) } } - is FirProperty -> { + target is FirProperty -> { if (target.returnTypeRef is FirImplicitTypeRef || target.backingField?.returnTypeRef is FirImplicitTypeRef) { resolve(target, BodyStateKeepers.PROPERTY) } } - is FirField -> { + target is FirField -> { if (target.returnTypeRef is FirImplicitTypeRef) { resolve(target, BodyStateKeepers.FIELD) } } - is FirScript -> { + target is FirScript -> { if (target.declarations.any { it.isScriptDependentDeclaration }) { resolve(target, BodyStateKeepers.SCRIPT) } } - is FirRegularClass, - is FirTypeAlias, - is FirFile, - is FirCodeFragment, - is FirAnonymousInitializer, - is FirDanglingModifierList, - is FirFileAnnotationsContainer, - is FirEnumEntry, - is FirErrorProperty, + target is FirRegularClass || + target is FirTypeAlias || + target is FirFile || + target is FirCodeFragment || + target is FirAnonymousInitializer || + target is FirDanglingModifierList || + target is FirFileAnnotationsContainer || + target is FirEnumEntry || + target is FirErrorProperty -> { // No implicit bodies here } @@ -216,11 +211,6 @@ internal class LLFirImplicitBodyTargetResolver( } } - target is FirCallableDeclaration && target.attributes.callableCopySubstitutionForTypeUpdater != null -> { - transformer.returnTypeCalculator.callableCopyTypeCalculator.computeReturnType(target) - Unit - } - else -> super.rawResolve(target) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/PostponedSymbolsForAnnotationResolutionAttribute.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/PostponedSymbolsForAnnotationResolutionAttribute.kt index 18d9b2e84e3..781133d1fe9 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/PostponedSymbolsForAnnotationResolutionAttribute.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/transformers/PostponedSymbolsForAnnotationResolutionAttribute.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirScript import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirValueParameterSymbol private object PostponedSymbolsForAnnotationResolutionKey : FirDeclarationDataKey() @@ -74,4 +75,24 @@ internal fun FirDeclaration.forEachDeclarationWhichCanHavePostponedSymbols(actio } else -> {} } -} \ No newline at end of file +} + +/** + * @return a symbol which should be used as a member of [postponedSymbolsForAnnotationResolution] collection + * + * @see postponedSymbolsForAnnotationResolution + */ +internal fun FirBasedSymbol<*>.unwrapSymbolToPostpone(): FirBasedSymbol<*> = when (this) { + is FirValueParameterSymbol -> containingFunctionSymbol + else -> this +} + +/** + * @return an [unwrapped][unwrapSymbolToPostpone] symbol which [can][cannotResolveAnnotationsOnDemand] be resolved on demand + * + * @see unwrapSymbolToPostpone + * @see cannotResolveAnnotationsOnDemand + */ +internal fun FirBasedSymbol<*>.symbolToPostponeIfCanBeResolvedOnDemand(): FirBasedSymbol<*>? { + return unwrapSymbolToPostpone().takeUnless { it.cannotResolveAnnotationsOnDemand() } +} diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/firCheckResolvedUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/firCheckResolvedUtils.kt index 952d378fdf7..9143b0ce131 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/firCheckResolvedUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/util/firCheckResolvedUtils.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.contracts.FirLegacyRawContractDescription import org.jetbrains.kotlin.fir.contracts.FirResolvedContractDescription import org.jetbrains.kotlin.fir.contracts.impl.FirEmptyContractDescription import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.declarations.utils.isActual import org.jetbrains.kotlin.fir.declarations.utils.isExpect import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall @@ -243,7 +242,7 @@ internal fun FirAbstractBodyResolveTransformerDispatcher.checkAnnotationCallIsRe checkAnnotationIsResolved(annotationCall, annotationContainer) } -private object AnnotationChecker : FirVisitor() { +private object AnnotationChecker : AnnotationVisitorVoid() { override fun visitAnnotation(annotation: FirAnnotation, data: FirAnnotationContainer) { checkAnnotationIsResolved(annotation, data) } @@ -251,8 +250,16 @@ private object AnnotationChecker : FirVisitor() { override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: FirAnnotationContainer) { checkAnnotationIsResolved(annotationCall, data) } +} - override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: FirAnnotationContainer) { +/** + * This visitor is responsible for visiting all annotations recursively + */ +internal abstract class AnnotationVisitorVoid : FirVisitor() { + abstract override fun visitAnnotation(annotation: FirAnnotation, data: T) + abstract override fun visitAnnotationCall(annotationCall: FirAnnotationCall, data: T) + + override fun visitResolvedTypeRef(resolvedTypeRef: FirResolvedTypeRef, data: T) { resolvedTypeRef.acceptChildren(this, data) resolvedTypeRef.coneType.forEachType { @@ -262,7 +269,7 @@ private object AnnotationChecker : FirVisitor() { } } - override fun visitElement(element: FirElement, data: FirAnnotationContainer) { + override fun visitElement(element: FirElement, data: T) { element.acceptChildren(this, data) } } diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.after.txt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.after.txt new file mode 100644 index 00000000000..a5c6f13b377 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.after.txt @@ -0,0 +1,59 @@ +public open override [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile !=(R|/name|, String(str)) +} + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| { + ^isSchemeFile Boolean(true) +} + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /IntermediateClass.anotherFunction, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| { + ^anotherFunction Boolean(true) +} + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.propertyWithAnnotations, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] var propertyWithAnnotations: R|SCHEME| = R|/genericCall|() + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] @SETTER_PARAMETER:R|Anno|[Types](str = (String(property ), R|/constant|)) value: R|SCHEME|): R|kotlin/Unit| + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.property, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.property] var property: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] var property: R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] value: R|SCHEME|): R|kotlin/Unit| + +public open operator [ResolvedTo(BODY_RESOLVE)] fun equals([ResolvedTo(BODY_RESOLVE)] other: R|kotlin/Any?|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun hashCode(): R|kotlin/Int| + +public open [ResolvedTo(BODY_RESOLVE)] fun toString(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.kt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.kt index 03830e8e90b..bc503dd5f5f 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.kt +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitution.kt @@ -1,5 +1,3 @@ -// IGNORE_FIR - annotation class Anno(val str: String) val constant = "const" diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.after.txt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.after.txt new file mode 100644 index 00000000000..a5c6f13b377 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.after.txt @@ -0,0 +1,59 @@ +public open override [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile !=(R|/name|, String(str)) +} + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| { + ^isSchemeFile Boolean(true) +} + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /IntermediateClass.anotherFunction, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence| = R|/genericCall|()): R|kotlin/Boolean| { + ^anotherFunction Boolean(true) +} + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.propertyWithAnnotations, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] var propertyWithAnnotations: R|SCHEME| = R|/genericCall|() + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] @SETTER_PARAMETER:R|Anno|[Types](str = (String(property ), R|/constant|)) value: R|SCHEME|): R|kotlin/Unit| + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.property, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.property] var property: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] var property: R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] value: R|SCHEME|): R|kotlin/Unit| + +public open operator [ResolvedTo(BODY_RESOLVE)] fun equals([ResolvedTo(BODY_RESOLVE)] other: R|kotlin/Any?|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun hashCode(): R|kotlin/Int| + +public open [ResolvedTo(BODY_RESOLVE)] fun toString(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.kts b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.kts index 03830e8e90b..bc503dd5f5f 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.kts +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithImplicitTypeInsideClassWithSubstitutionScript.kts @@ -1,5 +1,3 @@ -// IGNORE_FIR - annotation class Anno(val str: String) val constant = "const" diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.after.txt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.after.txt new file mode 100644 index 00000000000..45dbdb34625 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.after.txt @@ -0,0 +1,59 @@ +public open override [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile !=(R|/name|, String(str)) +} + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile Boolean(true) +} + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /IntermediateClass.anotherFunction, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| = R|/genericCall#|<>()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| = R|/genericCall#|<>()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] name: R|SCHEME| = R|/genericCall|()): R|kotlin/Boolean| { + ^anotherFunction Boolean(true) +} + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.propertyWithAnnotations, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] var propertyWithAnnotations: R|SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] @SETTER_PARAMETER:R|Anno|[Types](str = (String(property ), R|/constant|)) value: R|SCHEME|): R|kotlin/Unit| + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.property, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.property] var property: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] var property: R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] value: R|SCHEME|): R|kotlin/Unit| + +public open operator [ResolvedTo(BODY_RESOLVE)] fun equals([ResolvedTo(BODY_RESOLVE)] other: R|kotlin/Any?|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun hashCode(): R|kotlin/Int| + +public open [ResolvedTo(BODY_RESOLVE)] fun toString(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.kt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.kt index 426b9b2fd97..5fa390b55e1 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.kt +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitution.kt @@ -1,5 +1,3 @@ -// IGNORE_FIR - annotation class Anno(val str: String) val constant = "const" diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.after.txt b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.after.txt new file mode 100644 index 00000000000..45dbdb34625 --- /dev/null +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.after.txt @@ -0,0 +1,59 @@ +public open override [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile !=(R|/name|, String(str)) +} + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.isSchemeFile] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|kotlin/CharSequence|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun isSchemeFile([ResolvedTo(BODY_RESOLVE)] name: R|kotlin/CharSequence|): R|kotlin/Boolean| { + ^isSchemeFile Boolean(true) +} + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirNamedFunctionSymbol /IntermediateClass.anotherFunction, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| = R|/genericCall#|<>()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| = R|/genericCall#|<>()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.anotherFunction] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/name] name: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| = R|/genericCall|()): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun anotherFunction([ResolvedTo(BODY_RESOLVE)] name: R|SCHEME| = R|/genericCall|()): R|kotlin/Boolean| { + ^anotherFunction Boolean(true) +} + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.propertyWithAnnotations, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.propertyWithAnnotations] var propertyWithAnnotations: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] get(): R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=IntermediateClass, SubstitutedOverrideOriginalKey=special/accessor] set([ResolvedTo(BODY_RESOLVE)] value: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME|): R|kotlin/Unit| + +@R|Anno|[Types](str = (String(property ), R|/constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] var propertyWithAnnotations: R|SCHEME| + @PROPERTY_GETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + @PROPERTY_SETTER:R|Anno|[Types](str = (String(property ), R|/constant|)) public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] @SETTER_PARAMETER:R|Anno|[Types](str = (String(property ), R|/constant|)) value: R|SCHEME|): R|kotlin/Unit| + +public open [ResolvedTo(BODY_RESOLVE)] [DelegatedWrapperDataKey=[wrapped=FirPropertySymbol /IntermediateClass.property, containingClass=MyClass, delegateField=FirFieldSymbol /MyClass.$$delegate_0, SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/IntermediateClass.property] var property: R|@R|Anno|(str = (String(class ), R|/constant|)) @R|Anno|(str = (String(super ), R|/constant|)) kotlin/Int| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/BaseClass.property] var property: R|@R|Anno|(str = (String(super ), R|/constant|)) SCHEME| + + + +public abstract [ResolvedTo(BODY_RESOLVE)] var property: R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] get(): R|SCHEME| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=BaseClass] set([ResolvedTo(BODY_RESOLVE)] value: R|SCHEME|): R|kotlin/Unit| + +public open operator [ResolvedTo(BODY_RESOLVE)] fun equals([ResolvedTo(BODY_RESOLVE)] other: R|kotlin/Any?|): R|kotlin/Boolean| + +public open [ResolvedTo(BODY_RESOLVE)] fun hashCode(): R|kotlin/Int| + +public open [ResolvedTo(BODY_RESOLVE)] fun toString(): R|kotlin/String| diff --git a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.kts b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.kts index 426b9b2fd97..5fa390b55e1 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.kts +++ b/analysis/low-level-api-fir/testData/lazyResolveScopes/delegateOverrideWithoutImplicitTypeInsideClassWithSubstitutionScript.kts @@ -1,5 +1,3 @@ -// IGNORE_FIR - annotation class Anno(val str: String) val constant = "const" diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/function.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/function.lazyResolve.txt index 08d6aad07f3..e4b1a6d063a 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/function.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/function.lazyResolve.txt @@ -133,7 +133,7 @@ FILE: [ResolvedTo(IMPORTS)] function.kt } public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/String| = String(str) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/String| - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { LAZY_super(String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>|> } @@ -163,7 +163,7 @@ FILE: [ResolvedTo(IMPORTS)] function.kt } public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/String| = String(str) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/String| - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { LAZY_super(String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>|> } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionScript.lazyResolve.txt index 87dfb95b8af..1789fb44cc4 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionScript.lazyResolve.txt @@ -171,7 +171,7 @@ FILE: [ResolvedTo(IMPORTS)] functionScript.kts public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/String| = String(str) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/String| - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { LAZY_super(String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>|> } @@ -209,7 +209,7 @@ FILE: [ResolvedTo(IMPORTS)] functionScript.kts public final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val constant: R|kotlin/String| = String(str) public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/String| - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { LAZY_super(String(type argument: ), R|second/constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), R|second/constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), R|second/constant|)) kotlin/String>>>|> } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailable.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailable.lazyResolve.txt index 03ed7eb1023..47119d3abc3 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailable.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailable.lazyResolve.txt @@ -151,7 +151,7 @@ FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt } ANNOTATION_ARGUMENTS: -TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|.resolveMe([ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>| +TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|.resolveMe([ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>| FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { @@ -163,9 +163,9 @@ FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| } - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), #)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { - LAZY_super(String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>|> + LAZY_super(String(type argument: ), #)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>|> } } @@ -189,7 +189,7 @@ FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt } BODY_RESOLVE: -TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|.resolveMe([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>| +TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|.resolveMe([ResolvedTo(BODY_RESOLVE)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>| FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt @R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.FUNCTION|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public final [ResolvedTo(STATUS)] annotation class Anno : R|kotlin/Annotation| { @@ -201,9 +201,9 @@ FILE: [ResolvedTo(IMPORTS)] functionUnavailable.kt public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String| } - public abstract [ResolvedTo(STATUS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>| { + public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] class SubClass : R|second/AbstractClass<@R|second/Anno|(position = (String(type argument: ), #)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>| { public [ResolvedTo(STATUS)] [ContainingClassKey=SubClass] constructor(): R|second/SubClass| { - LAZY_super(String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>|> + LAZY_super(String(type argument: ), #)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>|> } } diff --git a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailableScript.lazyResolve.txt b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailableScript.lazyResolve.txt index 4856da65622..fc2241e33bb 100644 --- a/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailableScript.lazyResolve.txt +++ b/analysis/low-level-api-fir/testData/lazyResolveTypeAnnotations/substitutionOverride/functionUnavailableScript.lazyResolve.txt @@ -179,7 +179,7 @@ FILE: [ResolvedTo(IMPORTS)] functionUnavailableScript.kts ANNOTATION_ARGUMENTS: -TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|.resolveMe([ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant#|)) kotlin/String>>>>| +TARGET: @R|second/Anno|[Types](position = (String(function ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) public abstract [ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=second/AbstractClass.resolveMe] fun <@R|second/Anno|[Types](position = (String(type param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|second/Anno|(position = (String(bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested nested bound type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/String>>|> @RECEIVER:R|second/Anno|[Types](position = (String(receiver ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) R|@R|second/Anno|(position = (String(receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested receiver type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|.resolveMe([ResolvedTo(ANNOTATION_ARGUMENTS)] [SubstitutedOverrideOriginalKey=/param] @R|second/Anno|[Types](position = (String(param ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) param: R|@R|second/Anno|(position = (String(param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested param type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>|): R|@R|second/Anno|(position = (String(return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/Collection<@R|second/Anno|(position = (String(type argument: ), #)) @R|second/Anno|(position = (String(nested nested return type ), this@R|second/AbstractClass.Companion|.R|second/AbstractClass.Companion.constant|)) kotlin/collections/List<@R|second/Anno|(position = (String(nested type argument: ), #)) kotlin/collections/Collection<@R|second/Anno|(position = (String(nested nested type argument: ), #)) kotlin/String>>>>| FILE: [ResolvedTo(IMPORTS)] functionUnavailableScript.kts context(