[FIR] add diagnostic test for annotations inside type parameters

^KT-63396
This commit is contained in:
Dmitrii Gridin
2023-11-10 17:16:12 +01:00
committed by Space Team
parent bec434d534
commit 2ee9fcab9b
13 changed files with 812 additions and 0 deletions
@@ -0,0 +1,11 @@
@Target(AnnotationTarget.TYPE, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val position: String)
interface OriginalInterface {
@Anno("explicitType $prop")
fun <@Anno("type param $prop") F : @Anno("bound $prop") List<@Anno("nested bound $prop") List<@Anno("nested nested bound $prop") String>>> @receiver:Anno("receiver annotation: $prop") @Anno("receiver type $prop") Collection<@Anno("nested receiver type $prop") List<@Anno("nested nested receiver type $prop")String>>.expli<caret>citType(@Anno("parameter annotation $prop") param: @Anno("parameter type $prop") ListIterator<@Anno("nested parameter type $prop") List<@Anno("nested nested parameter type $prop")String>>): @Anno("explicitType return type $prop") List<@Anno("explicitType nested return type $prop") List<@Anno("explicitType nested nested return type $prop") Int>> = 0
companion object {
private const val prop = 0
}
}
@@ -0,0 +1,347 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
@Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(RAW_FIR)] F : @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>> @RECEIVER:Anno[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) Collection<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>.explicitType([ResolvedTo(RAW_FIR)] @Anno[Unresolved](LAZY_EXPRESSION) param: @Anno[Unresolved](LAZY_EXPRESSION) ListIterator<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>): @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) Int>> { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
@Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] fun <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(RAW_FIR)] F : @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>> @RECEIVER:Anno[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) Collection<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>.explicitType([ResolvedTo(RAW_FIR)] @Anno[Unresolved](LAZY_EXPRESSION) param: @Anno[Unresolved](LAZY_EXPRESSION) ListIterator<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>): @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) Int>> { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
@Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] F : @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>> @RECEIVER:Anno[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) Collection<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>.explicitType([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] @Anno[Unresolved](LAZY_EXPRESSION) param: @Anno[Unresolved](LAZY_EXPRESSION) ListIterator<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>): @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) Int>> { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
@Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(COMPANION_GENERATION)] fun <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(COMPANION_GENERATION)] F : @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>> @RECEIVER:Anno[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) Collection<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>.explicitType([ResolvedTo(COMPANION_GENERATION)] @Anno[Unresolved](LAZY_EXPRESSION) param: @Anno[Unresolved](LAZY_EXPRESSION) ListIterator<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>): @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) Int>> { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(SUPER_TYPES)] interface OriginalInterface : R|kotlin/Any| {
@Anno[Unresolved](LAZY_EXPRESSION) public? final? [ResolvedTo(SUPER_TYPES)] fun <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(SUPER_TYPES)] F : @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>> @RECEIVER:Anno[Unresolved](LAZY_EXPRESSION) @Anno[Unresolved](LAZY_EXPRESSION) Collection<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>.explicitType([ResolvedTo(SUPER_TYPES)] @Anno[Unresolved](LAZY_EXPRESSION) param: @Anno[Unresolved](LAZY_EXPRESSION) ListIterator<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) String>>): @Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) List<@Anno[Unresolved](LAZY_EXPRESSION) Int>> { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
TYPES:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](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(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(TYPES)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](LAZY_EXPRESSION) public? final? [ResolvedTo(TYPES)] fun <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(TYPES)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested bound ), prop#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](LAZY_EXPRESSION) R|@R|Anno|(<strcat>(String(receiver type ), prop#)) kotlin/collections/Collection<@R|Anno|(<strcat>(String(nested receiver type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested receiver type ), prop#)) kotlin/String>>|.explicitType([ResolvedTo(TYPES)] @R|Anno|[Types](LAZY_EXPRESSION) param: R|@R|Anno|(<strcat>(String(parameter type ), prop#)) kotlin/collections/ListIterator<@R|Anno|(<strcat>(String(nested parameter type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested parameter type ), prop#)) kotlin/String>>|): R|@R|Anno|(<strcat>(String(explicitType return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested nested return type ), prop#)) kotlin/Int>>| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
STATUS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](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(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](LAZY_EXPRESSION) public open [ResolvedTo(STATUS)] fun <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(STATUS)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested bound ), prop#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](LAZY_EXPRESSION) R|@R|Anno|(<strcat>(String(receiver type ), prop#)) kotlin/collections/Collection<@R|Anno|(<strcat>(String(nested receiver type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested receiver type ), prop#)) kotlin/String>>|.explicitType([ResolvedTo(STATUS)] @R|Anno|[Types](LAZY_EXPRESSION) param: R|@R|Anno|(<strcat>(String(parameter type ), prop#)) kotlin/collections/ListIterator<@R|Anno|(<strcat>(String(nested parameter type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested parameter type ), prop#)) kotlin/String>>|): R|@R|Anno|(<strcat>(String(explicitType return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested nested return type ), prop#)) kotlin/Int>>| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](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(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](LAZY_EXPRESSION) public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(EXPECT_ACTUAL_MATCHING)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested bound ), prop#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](LAZY_EXPRESSION) R|@R|Anno|(<strcat>(String(receiver type ), prop#)) kotlin/collections/Collection<@R|Anno|(<strcat>(String(nested receiver type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested receiver type ), prop#)) kotlin/String>>|.explicitType([ResolvedTo(EXPECT_ACTUAL_MATCHING)] @R|Anno|[Types](LAZY_EXPRESSION) param: R|@R|Anno|(<strcat>(String(parameter type ), prop#)) kotlin/collections/ListIterator<@R|Anno|(<strcat>(String(nested parameter type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested parameter type ), prop#)) kotlin/String>>|): R|@R|Anno|(<strcat>(String(explicitType return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested nested return type ), prop#)) kotlin/Int>>| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](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(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](LAZY_EXPRESSION) public open [ResolvedTo(CONTRACTS)] fun <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(CONTRACTS)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested bound ), prop#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](LAZY_EXPRESSION) R|@R|Anno|(<strcat>(String(receiver type ), prop#)) kotlin/collections/Collection<@R|Anno|(<strcat>(String(nested receiver type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested receiver type ), prop#)) kotlin/String>>|.explicitType([ResolvedTo(CONTRACTS)] @R|Anno|[Types](LAZY_EXPRESSION) param: R|@R|Anno|(<strcat>(String(parameter type ), prop#)) kotlin/collections/ListIterator<@R|Anno|(<strcat>(String(nested parameter type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested parameter type ), prop#)) kotlin/String>>|): R|@R|Anno|(<strcat>(String(explicitType return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested nested return type ), prop#)) kotlin/Int>>| {
^explicitType IntegerLiteral(0)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(STATUS)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): <implicit>
}
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](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(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](LAZY_EXPRESSION) public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested bound ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested bound ), prop#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](LAZY_EXPRESSION) R|@R|Anno|(<strcat>(String(receiver type ), prop#)) kotlin/collections/Collection<@R|Anno|(<strcat>(String(nested receiver type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested receiver type ), prop#)) kotlin/String>>|.explicitType([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] @R|Anno|[Types](LAZY_EXPRESSION) param: R|@R|Anno|(<strcat>(String(parameter type ), prop#)) kotlin/collections/ListIterator<@R|Anno|(<strcat>(String(nested parameter type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(nested nested parameter type ), prop#)) kotlin/String>>|): R|@R|Anno|(<strcat>(String(explicitType return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested return type ), prop#)) kotlin/collections/List<@R|Anno|(<strcat>(String(explicitType nested nested return type ), prop#)) kotlin/Int>>| {
^explicitType IntegerLiteral(0)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(STATUS)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): <implicit>
}
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.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| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](position = <strcat>(String(explicitType ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) public open [ResolvedTo(ANNOTATION_ARGUMENTS)] fun <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested bound ), <Unresolved name: prop>#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](position = <strcat>(String(receiver annotation: ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) R|@R|Anno|(position = <strcat>(String(receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/Collection<@R|Anno|(position = <strcat>(String(nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|.explicitType([ResolvedTo(ANNOTATION_ARGUMENTS)] @R|Anno|[Types](position = <strcat>(String(parameter annotation ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) param: R|@R|Anno|(position = <strcat>(String(parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/ListIterator<@R|Anno|(position = <strcat>(String(nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|): R|@R|Anno|(position = <strcat>(String(explicitType return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int>>| {
^explicitType IntegerLiteral(0)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.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| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](position = <strcat>(String(explicitType ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) public open [ResolvedTo(BODY_RESOLVE)] fun <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested bound ), <Unresolved name: prop>#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](position = <strcat>(String(receiver annotation: ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) R|@R|Anno|(position = <strcat>(String(receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/Collection<@R|Anno|(position = <strcat>(String(nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|.explicitType([ResolvedTo(BODY_RESOLVE)] @R|Anno|[Types](position = <strcat>(String(parameter annotation ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) param: R|@R|Anno|(position = <strcat>(String(parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/ListIterator<@R|Anno|(position = <strcat>(String(nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|): R|@R|Anno|(position = <strcat>(String(explicitType return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int>>| {
^explicitType Int(0)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[Types](allowedTargets = vararg(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(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(BODY_RESOLVE)] interface OriginalInterface : R|kotlin/Any| {
@R|Anno|[Types](position = <strcat>(String(explicitType ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) public open [ResolvedTo(BODY_RESOLVE)] fun <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested bound ), <Unresolved name: prop>#)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested bound ), <Unresolved name: prop>#)) kotlin/String>>|> @RECEIVER:R|Anno|[Types](position = <strcat>(String(receiver annotation: ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) R|@R|Anno|(position = <strcat>(String(receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/Collection<@R|Anno|(position = <strcat>(String(nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested receiver type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|.explicitType([ResolvedTo(BODY_RESOLVE)] @R|Anno|[Types](position = <strcat>(String(parameter annotation ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) param: R|@R|Anno|(position = <strcat>(String(parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/ListIterator<@R|Anno|(position = <strcat>(String(nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(nested nested parameter type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/String>>|): R|@R|Anno|(position = <strcat>(String(explicitType return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/collections/List<@R|Anno|(position = <strcat>(String(explicitType nested nested return type ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int>>| {
^explicitType Int(0)
}
public final companion [ResolvedTo(BODY_RESOLVE)] object Companion : R|kotlin/Any| {
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
super<R|kotlin/Any|>()
}
private final const [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
@@ -0,0 +1,10 @@
@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val position: String)
interface OriginalInterface {
val <@Anno("type param $prop") F : @Anno("bound $prop") Number> explic<caret>itType: @Anno("bound $prop") Int get() = 1
companion object {
private const val prop = 0
}
}
@@ -0,0 +1,360 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] val <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(RAW_FIR)] F : @Anno[Unresolved](LAZY_EXPRESSION) Number> explicitType: @Anno[Unresolved](LAZY_EXPRESSION) Int
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalInterface] get(): @Anno[Unresolved](LAZY_EXPRESSION) Int { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] val <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(RAW_FIR)] F : @Anno[Unresolved](LAZY_EXPRESSION) Number> explicitType: @Anno[Unresolved](LAZY_EXPRESSION) Int
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OriginalInterface] get(): @Anno[Unresolved](LAZY_EXPRESSION) Int { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] F : @Anno[Unresolved](LAZY_EXPRESSION) Number> explicitType: @Anno[Unresolved](LAZY_EXPRESSION) Int
public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=OriginalInterface] get(): @Anno[Unresolved](LAZY_EXPRESSION) Int { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(RAW_FIR)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(COMPANION_GENERATION)] val <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(COMPANION_GENERATION)] F : @Anno[Unresolved](LAZY_EXPRESSION) Number> explicitType: @Anno[Unresolved](LAZY_EXPRESSION) Int
public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=OriginalInterface] get(): @Anno[Unresolved](LAZY_EXPRESSION) Int { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@Target[Unresolved](LAZY_EXPRESSION, LAZY_EXPRESSION, LAZY_EXPRESSION) public? final? [ResolvedTo(RAW_FIR)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(SUPER_TYPES)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(SUPER_TYPES)] val <@Anno[Unresolved](LAZY_EXPRESSION) [ResolvedTo(SUPER_TYPES)] F : @Anno[Unresolved](LAZY_EXPRESSION) Number> explicitType: @Anno[Unresolved](LAZY_EXPRESSION) Int
public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=OriginalInterface] get(): @Anno[Unresolved](LAZY_EXPRESSION) Int { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
TYPES:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public? final? [ResolvedTo(TYPES)] interface OriginalInterface : R|kotlin/Any| {
public? final? [ResolvedTo(TYPES)] val <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(TYPES)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Number|> explicitType: R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int|
public? [ResolvedTo(TYPES)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
STATUS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] val <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(STATUS)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Number|> explicitType: R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int|
public [ResolvedTo(STATUS)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(EXPECT_ACTUAL_MATCHING)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Number|> explicitType: R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int|
public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int| { LAZY_BLOCK }
public? final? companion [ResolvedTo(RAW_FIR)] object Companion : R|kotlin/Any| {
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final? const [ResolvedTo(RAW_FIR)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=Companion] get(): <implicit>
}
}
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(CONTRACTS)] val <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(CONTRACTS)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Number|> explicitType: R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int|
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int| {
^ IntegerLiteral(1)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(STATUS)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): <implicit>
}
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[CompilerRequiredAnnotations](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|) public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] annotation class Anno : R|kotlin/Annotation| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=/Anno.position] position: String): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val position: String = R|<local>/position|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Anno] get(): String
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val <@R|Anno|[Types](LAZY_EXPRESSION) [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] F : R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Number|> explicitType: R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int|
public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(<strcat>(String(bound ), prop#)) kotlin/Int| {
^ IntegerLiteral(1)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(STATUS)] val prop: <implicit> = LAZY_EXPRESSION
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] get(): <implicit>
}
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, 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| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(ANNOTATION_ARGUMENTS)] val <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(ANNOTATION_ARGUMENTS)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/Number|> explicitType: R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int|
public [ResolvedTo(ANNOTATION_ARGUMENTS)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int| {
^ IntegerLiteral(1)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[Types](Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, 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| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
LAZY_super<R|kotlin/Any|>
}
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(STATUS)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(STATUS)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(BODY_RESOLVE)] val <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/Number|> explicitType: R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int| {
^ Int(1)
}
public final companion [ResolvedTo(STATUS)] object Companion : R|kotlin/Any| {
private [ResolvedTo(STATUS)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
LAZY_super<R|kotlin/Any|>
}
private final const [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] typeParameterAnnotations.kt
@R|kotlin/annotation/Target|[Types](allowedTargets = vararg(Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.VALUE_PARAMETER|, Q|kotlin/annotation/AnnotationTarget|.R|kotlin/annotation/AnnotationTarget.TYPE_PARAMETER|)) public final [ResolvedTo(BODY_RESOLVE)] annotation class Anno : R|kotlin/Annotation| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=/Anno.position] position: R|kotlin/String|): R|Anno| {
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val position: R|kotlin/String| = R|<local>/position|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Anno] get(): R|kotlin/String|
}
public abstract [ResolvedTo(BODY_RESOLVE)] interface OriginalInterface : R|kotlin/Any| {
public open [ResolvedTo(BODY_RESOLVE)] val <@R|Anno|[Types](position = <strcat>(String(type param ), <Unresolved name: prop>#)) [ResolvedTo(BODY_RESOLVE)] F : R|@R|Anno|(position = <strcat>(String(bound ), <Unresolved name: prop>#)) kotlin/Number|> explicitType: R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OriginalInterface] get(): R|@R|Anno|(position = <strcat>(String(bound ), this@R|/OriginalInterface.Companion|.R|/OriginalInterface.Companion.prop|)) kotlin/Int| {
^ Int(1)
}
public final companion [ResolvedTo(BODY_RESOLVE)] object Companion : R|kotlin/Any| {
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Companion] constructor(): R|OriginalInterface.Companion| {
super<R|kotlin/Any|>()
}
private final const [ResolvedTo(BODY_RESOLVE)] val prop: R|kotlin/Int| = Int(0)
private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Companion] get(): R|kotlin/Int|
}
}
@@ -905,6 +905,12 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst
runTest("analysis/low-level-api-fir/testData/lazyResolve/functions/typeArgumentInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("analysis/low-level-api-fir/testData/lazyResolve/functions/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typePropagationFromFunctionWithInaccessibleAnnotationArgument.kt")
public void testTypePropagationFromFunctionWithInaccessibleAnnotationArgument() throws Exception {
@@ -1081,6 +1087,12 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst
runTest("analysis/low-level-api-fir/testData/lazyResolve/properties/simpleLoopInOverride2.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("analysis/low-level-api-fir/testData/lazyResolve/properties/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("unresolvedAnnotationOnPropertyType.kt")
public void testUnresolvedAnnotationOnPropertyType() throws Exception {
@@ -905,6 +905,12 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou
runTest("analysis/low-level-api-fir/testData/lazyResolve/functions/typeArgumentInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("analysis/low-level-api-fir/testData/lazyResolve/functions/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typePropagationFromFunctionWithInaccessibleAnnotationArgument.kt")
public void testTypePropagationFromFunctionWithInaccessibleAnnotationArgument() throws Exception {
@@ -1081,6 +1087,12 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou
runTest("analysis/low-level-api-fir/testData/lazyResolve/properties/simpleLoopInOverride2.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("analysis/low-level-api-fir/testData/lazyResolve/properties/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("unresolvedAnnotationOnPropertyType.kt")
public void testUnresolvedAnnotationOnPropertyType() throws Exception {
@@ -2196,6 +2196,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia
runTest("compiler/testData/diagnostics/tests/annotations/typeArgumentsInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typeParameterAsAnnotation.kt")
public void testTypeParameterAsAnnotation() throws Exception {
@@ -2196,6 +2196,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated
runTest("compiler/testData/diagnostics/tests/annotations/typeArgumentsInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typeParameterAsAnnotation.kt")
public void testTypeParameterAsAnnotation() throws Exception {
@@ -2190,6 +2190,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir
runTest("compiler/testData/diagnostics/tests/annotations/typeArgumentsInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typeParameterAsAnnotation.kt")
public void testTypeParameterAsAnnotation() throws Exception {
@@ -2196,6 +2196,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia
runTest("compiler/testData/diagnostics/tests/annotations/typeArgumentsInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typeParameterAsAnnotation.kt")
public void testTypeParameterAsAnnotation() throws Exception {
@@ -0,0 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// WITH_STDLIB
@Target(AnnotationTarget.TYPE, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val position: String)
interface OriginalInterface {
@Anno("explicitType $prop")
fun <@Anno("type param $<!UNRESOLVED_REFERENCE!>prop<!>") F : @Anno("bound $<!UNRESOLVED_REFERENCE!>prop<!>") List<@Anno("nested bound $<!UNRESOLVED_REFERENCE!>prop<!>") List<@Anno("nested nested bound $<!UNRESOLVED_REFERENCE!>prop<!>") String>>> @receiver:Anno("receiver annotation: $prop") @Anno("receiver type $prop") Collection<@Anno("nested receiver type $prop") List<@Anno("nested nested receiver type $prop")String>>.explicitType(@Anno("parameter annotation $prop") param: @Anno("parameter type $prop") ListIterator<@Anno("nested parameter type $prop") List<@Anno("nested nested parameter type $prop")String>>): @Anno("explicitType return type $prop") List<@Anno("explicitType nested return type $prop") List<@Anno("explicitType nested nested return type $prop") Int>> = emptyList()
val <@Anno("type param $<!UNRESOLVED_REFERENCE!>prop<!>") F : @Anno("bound $<!UNRESOLVED_REFERENCE!>prop<!>") Number> F.explicitType: @Anno("bound $prop") Int get() = 1
companion object {
private const val prop = 0
}
}
@@ -0,0 +1,15 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// WITH_STDLIB
@Target(AnnotationTarget.TYPE, AnnotationTarget.FUNCTION, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val position: String)
interface OriginalInterface {
@Anno("explicitType $prop")
fun <@Anno("type param $prop") F : @Anno("bound $prop") List<@Anno("nested bound $prop") List<@Anno("nested nested bound $prop") String>>> @receiver:Anno("receiver annotation: $prop") <!REPEATED_ANNOTATION!>@Anno("receiver type $prop")<!> Collection<@Anno("nested receiver type $prop") List<@Anno("nested nested receiver type $prop")String>>.explicitType(@Anno("parameter annotation $prop") param: @Anno("parameter type $prop") ListIterator<@Anno("nested parameter type $prop") List<@Anno("nested nested parameter type $prop")String>>): @Anno("explicitType return type $prop") List<@Anno("explicitType nested return type $prop") List<@Anno("explicitType nested nested return type $prop") Int>> = emptyList()
val <@Anno("type param $prop") F : @Anno("bound $prop") Number> F.explicitType: @Anno("bound $prop") Int get() = 1
companion object {
private const val prop = 0
}
}
@@ -2196,6 +2196,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/annotations/typeArgumentsInAnnotation.kt");
}
@Test
@TestMetadata("typeParameterAnnotations.kt")
public void testTypeParameterAnnotations() throws Exception {
runTest("compiler/testData/diagnostics/tests/annotations/typeParameterAnnotations.kt");
}
@Test
@TestMetadata("typeParameterAsAnnotation.kt")
public void testTypeParameterAsAnnotation() throws Exception {