Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/references/referenceToExtension.fir.txt
T
Mikhail Glukhikh 5daafd5ed5 FirNestedClassifierScope: don't give empty map substitutor to a processor
Optimization related to KT-58008 (hides the issue in some cases)
2023-04-25 16:42:59 +00:00

94 lines
3.8 KiB
Plaintext
Vendored

FILE: referenceToExtension.kt
public final class GenericTest : R|kotlin/Any| {
public constructor(): R|GenericTest| {
super<R|kotlin/Any|>()
}
public final class A<T> : R|kotlin/Any| {
public constructor<T>(): R|GenericTest.A<T>| {
super<R|kotlin/Any|>()
}
}
public final class B<T> : R|kotlin/Any| {
public constructor<T>(): R|GenericTest.B<T>| {
super<R|kotlin/Any|>()
}
public final val memberVal: R|GenericTest.A<T>| = R|/GenericTest.A.A|<R|T|>()
public get(): R|GenericTest.A<T>|
public final fun memberFun(): R|GenericTest.A<T>| {
^memberFun R|/GenericTest.A.A|<R|T|>()
}
}
public final val <T> R|GenericTest.B<T>|.extensionVal: R|GenericTest.A<T>|
public get(): R|GenericTest.A<T>| {
^ R|/GenericTest.A.A|<R|T|>()
}
public final fun <T> R|GenericTest.B<T>|.extensionFun(): R|GenericTest.A<T>| {
^extensionFun R|/GenericTest.A.A|<R|T|>()
}
public final fun test_1(): R|kotlin/Unit| {
lval memberValRef: R|kotlin/reflect/KProperty1<GenericTest.B<*>, GenericTest.A<out kotlin/Any?>>| = Q|GenericTest.B|::R|SubstitutionOverride</GenericTest.B.memberVal: R|GenericTest.A<CapturedType(*)>|>|
lval memberFunRef: R|kotlin/reflect/KFunction1<GenericTest.B<*>, GenericTest.A<out kotlin/Any?>>| = Q|GenericTest.B|::R|SubstitutionOverride</GenericTest.B.memberFun: R|GenericTest.A<CapturedType(*)>|>|
}
public final fun test_2(): R|kotlin/Unit| {
lval extensionValRef: R|kotlin/reflect/KProperty1<GenericTest.B<*>, GenericTest.A<out kotlin/Any?>>| = Q|GenericTest.B|::R|/GenericTest.extensionVal<CapturedType(*)>|
lval extensionFunRef: R|@ExtensionFunctionType kotlin/reflect/KFunction1<GenericTest.B<*>, GenericTest.A<out kotlin/Any?>>| = Q|GenericTest.B|::R|/GenericTest.extensionFun<CapturedType(*)>|
}
}
public final class NoGenericTest : R|kotlin/Any| {
public constructor(): R|NoGenericTest| {
super<R|kotlin/Any|>()
}
public final class A : R|kotlin/Any| {
public constructor(): R|NoGenericTest.A| {
super<R|kotlin/Any|>()
}
}
public final class B : R|kotlin/Any| {
public constructor(): R|NoGenericTest.B| {
super<R|kotlin/Any|>()
}
public final val memberVal: R|NoGenericTest.A| = R|/NoGenericTest.A.A|()
public get(): R|NoGenericTest.A|
public final fun memberFun(): R|NoGenericTest.A| {
^memberFun R|/NoGenericTest.A.A|()
}
}
public final val R|NoGenericTest.B|.extensionVal: R|NoGenericTest.A|
public get(): R|NoGenericTest.A| {
^ R|/NoGenericTest.A.A|()
}
public final fun R|NoGenericTest.B|.extensionFun(): R|NoGenericTest.A| {
^extensionFun R|/NoGenericTest.A.A|()
}
public final fun test_1(): R|kotlin/Unit| {
lval extensionValRef: R|kotlin/reflect/KProperty1<NoGenericTest.B, NoGenericTest.A>| = Q|NoGenericTest.B|::R|/NoGenericTest.extensionVal|
lval extensionFunRef: R|@ExtensionFunctionType kotlin/reflect/KFunction1<NoGenericTest.B, NoGenericTest.A>| = Q|NoGenericTest.B|::R|/NoGenericTest.extensionFun|
}
public final fun test_2(): R|kotlin/Unit| {
lval memberValRef: R|kotlin/reflect/KProperty1<NoGenericTest.B, NoGenericTest.A>| = Q|NoGenericTest.B|::R|/NoGenericTest.B.memberVal|
lval memberFunRef: R|kotlin/reflect/KFunction1<NoGenericTest.B, NoGenericTest.A>| = Q|NoGenericTest.B|::R|/NoGenericTest.B.memberFun|
}
}