Handle java raw types in IR
Raw type Q is represented as a flexible type Q<B1, ... Bn> .. Q<*, ... *> where Bi is a representative upper bound of the corresponding ith type parameter of Q. When mapping generic signature, JVM takes type arguments of lower bound (which is 'Q<B1, ..., Bn>'). There is still some difference in how JVM and JVM_IR handle raw type in signature. It requires additional investigation.
This commit is contained in:
+5
@@ -2040,6 +2040,11 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
|
|||||||
runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType_NI.kt");
|
runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType_NI.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("rawTypeInSignature.kt")
|
||||||
|
public void testRawTypeInSignature() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/types/rawTypeInSignature.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("receiverOfIntersectionType.kt")
|
@TestMetadata("receiverOfIntersectionType.kt")
|
||||||
public void testReceiverOfIntersectionType() throws Exception {
|
public void testReceiverOfIntersectionType() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/types/receiverOfIntersectionType.kt");
|
runTest("compiler/testData/ir/irText/types/receiverOfIntersectionType.kt");
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.descriptors.TypeAliasDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer
|
import org.jetbrains.kotlin.ir.declarations.IrTypeParametersContainer
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl
|
||||||
@@ -116,27 +117,22 @@ class TypeTranslator(
|
|||||||
when (ktTypeDescriptor) {
|
when (ktTypeDescriptor) {
|
||||||
is TypeParameterDescriptor -> {
|
is TypeParameterDescriptor -> {
|
||||||
classifier = resolveTypeParameter(ktTypeDescriptor)
|
classifier = resolveTypeParameter(ktTypeDescriptor)
|
||||||
annotations = translateTypeAnnotations(approximatedType)
|
annotations = translateTypeAnnotations(approximatedType, flexibleApproximatedType)
|
||||||
}
|
}
|
||||||
|
|
||||||
is ClassDescriptor -> {
|
is ClassDescriptor -> {
|
||||||
classifier = symbolTable.referenceClass(ktTypeDescriptor)
|
classifier = symbolTable.referenceClass(ktTypeDescriptor)
|
||||||
arguments = translateTypeArguments(approximatedType.arguments)
|
arguments =
|
||||||
annotations = translateTypeAnnotations(approximatedType)
|
if (flexibleApproximatedType is RawType)
|
||||||
|
translateTypeArguments(flexibleApproximatedType.arguments)
|
||||||
|
else
|
||||||
|
translateTypeArguments(approximatedType.arguments)
|
||||||
|
annotations = translateTypeAnnotations(approximatedType, flexibleApproximatedType)
|
||||||
}
|
}
|
||||||
|
|
||||||
else ->
|
else ->
|
||||||
throw AssertionError("Unexpected type descriptor $ktTypeDescriptor :: ${ktTypeDescriptor::class}")
|
throw AssertionError("Unexpected type descriptor $ktTypeDescriptor :: ${ktTypeDescriptor::class}")
|
||||||
}
|
}
|
||||||
if (flexibleApproximatedType.isNullabilityFlexible())
|
|
||||||
extensions.flexibleNullabilityAnnotationConstructor?.let { flexibleTypeAnnotationConstructor ->
|
|
||||||
annotations += IrConstructorCallImpl(
|
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
|
||||||
flexibleTypeAnnotationConstructor.constructedClassType,
|
|
||||||
flexibleTypeAnnotationConstructor.symbol,
|
|
||||||
0, 0, 0
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}.buildTypeProjection()
|
}.buildTypeProjection()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -194,27 +190,40 @@ class TypeTranslator(
|
|||||||
approximateCapturedTypes(ktType).upper
|
approximateCapturedTypes(ktType).upper
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun translateTypeAnnotations(kotlinType: KotlinType): List<IrConstructorCall> {
|
private fun translateTypeAnnotations(kotlinType: KotlinType, flexibleType: KotlinType = kotlinType): List<IrConstructorCall> {
|
||||||
val annotations = kotlinType.annotations
|
val annotations = kotlinType.annotations
|
||||||
val irAnnotations = ArrayList<IrConstructorCall>()
|
val irAnnotations = ArrayList<IrConstructorCall>()
|
||||||
|
|
||||||
annotations.mapNotNullTo(irAnnotations) {
|
annotations.mapNotNullTo(irAnnotations) {
|
||||||
constantValueGenerator.generateAnnotationConstructorCall(it)
|
constantValueGenerator.generateAnnotationConstructorCall(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnhancedNullability annotation is not present in 'annotations', see 'EnhancedTypeAnnotations::iterator()'.
|
// EnhancedNullability annotation is not present in 'annotations', see 'EnhancedTypeAnnotations::iterator()'.
|
||||||
|
// Also, EnhancedTypeAnnotationDescriptor is not a "real" annotation descriptor, there's no corresponding ClassDescriptor, etc.
|
||||||
if (extensions.enhancedNullability.hasEnhancedNullability(kotlinType)) {
|
if (extensions.enhancedNullability.hasEnhancedNullability(kotlinType)) {
|
||||||
extensions.enhancedNullabilityAnnotationConstructor?.let { irConstructor ->
|
irAnnotations.addSpecialAnnotation(extensions.enhancedNullabilityAnnotationConstructor)
|
||||||
irAnnotations.add(
|
|
||||||
IrConstructorCallImpl.fromSymbolOwner(
|
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
|
||||||
irConstructor.constructedClassType,
|
|
||||||
irConstructor.symbol
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (flexibleType.isNullabilityFlexible()) {
|
||||||
|
irAnnotations.addSpecialAnnotation(extensions.flexibleNullabilityAnnotationConstructor)
|
||||||
|
}
|
||||||
|
|
||||||
return irAnnotations
|
return irAnnotations
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun MutableList<IrConstructorCall>.addSpecialAnnotation(irConstructor: IrConstructor?) {
|
||||||
|
if (irConstructor != null) {
|
||||||
|
add(
|
||||||
|
IrConstructorCallImpl.fromSymbolOwner(
|
||||||
|
UNDEFINED_OFFSET,
|
||||||
|
UNDEFINED_OFFSET,
|
||||||
|
irConstructor.constructedClassType,
|
||||||
|
irConstructor.symbol
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun translateTypeArguments(arguments: List<TypeProjection>) =
|
private fun translateTypeArguments(arguments: List<TypeProjection>) =
|
||||||
arguments.map {
|
arguments.map {
|
||||||
if (it.isStarProjection)
|
if (it.isStarProjection)
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
// FILE: rawTypeInSignature.kt
|
||||||
|
// WITH_SIGNATURES
|
||||||
|
|
||||||
|
class GenericInv<T : Number>
|
||||||
|
class GenericIn<in T : Number>
|
||||||
|
class GenericOut<out T : Number>
|
||||||
|
|
||||||
|
fun testReturnsRawGenericInv(j: JRaw) = j.returnsRawGenericInv()
|
||||||
|
|
||||||
|
fun testReturnsRawGenericIn(j: JRaw) = j.returnsRawGenericIn()
|
||||||
|
|
||||||
|
fun testReturnsRawGenericOut(j: JRaw) = j.returnsRawGenericOut()
|
||||||
|
|
||||||
|
class KRaw(j: JRaw) : JRaw by j
|
||||||
|
// JVM: public <(Ljava/util/List<Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
|
||||||
|
// JVM_IR: public <(Ljava/util/List<+Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
|
||||||
|
|
||||||
|
// FILE: JRaw.java
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public interface JRaw {
|
||||||
|
void takesRawList(List list);
|
||||||
|
List returnsRawList();
|
||||||
|
void takesRawGenericInv(GenericInv g);
|
||||||
|
GenericInv returnsRawGenericInv();
|
||||||
|
void takesRawGenericIn(GenericIn g);
|
||||||
|
GenericIn returnsRawGenericIn();
|
||||||
|
void takesRawGenericOut(GenericOut g);
|
||||||
|
GenericOut returnsRawGenericOut();
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericIn {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericInv {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericOut {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<null> KRaw {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <()LGenericIn<Ljava/lang/Number;>;> method returnsRawGenericIn(): GenericIn
|
||||||
|
public <()LGenericInv<Ljava/lang/Number;>;> method returnsRawGenericInv(): GenericInv
|
||||||
|
public <()LGenericOut<Ljava/lang/Number;>;> method returnsRawGenericOut(): GenericOut
|
||||||
|
public <()Ljava/util/List<Ljava/lang/Object;>;> method returnsRawList(): java.util.List
|
||||||
|
public <(LGenericIn<-Ljava/lang/Number;>;)V> method takesRawGenericIn(p0: GenericIn): void
|
||||||
|
public <(LGenericInv<Ljava/lang/Number;>;)V> method takesRawGenericInv(p0: GenericInv): void
|
||||||
|
public <(LGenericOut<+Ljava/lang/Number;>;)V> method takesRawGenericOut(p0: GenericOut): void
|
||||||
|
public <(Ljava/util/List<Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
|
||||||
|
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: JRaw): void
|
||||||
|
private synthetic final field <null> $$delegate_0: JRaw
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<null> RawTypeInSignatureKt {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public final static <(LJRaw;)LGenericIn<Ljava/lang/Number;>;> method testReturnsRawGenericIn(@org.jetbrains.annotations.NotNull p0: JRaw): GenericIn
|
||||||
|
public final static <(LJRaw;)LGenericInv<Ljava/lang/Number;>;> method testReturnsRawGenericInv(@org.jetbrains.annotations.NotNull p0: JRaw): GenericInv
|
||||||
|
public final static <(LJRaw;)LGenericOut<Ljava/lang/Number;>;> method testReturnsRawGenericOut(@org.jetbrains.annotations.NotNull p0: JRaw): GenericOut
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericIn {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericInv {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<<T:Ljava/lang/Number;>Ljava/lang/Object;> GenericOut {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <null> method <init>(): void
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<null> KRaw {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public <()LGenericIn<Ljava/lang/Number;>;> method returnsRawGenericIn(): GenericIn
|
||||||
|
public <()LGenericInv<Ljava/lang/Number;>;> method returnsRawGenericInv(): GenericInv
|
||||||
|
public <()LGenericOut<Ljava/lang/Number;>;> method returnsRawGenericOut(): GenericOut
|
||||||
|
public <()Ljava/util/List<Ljava/lang/Object;>;> method returnsRawList(): java.util.List
|
||||||
|
public <(LGenericIn<-Ljava/lang/Number;>;)V> method takesRawGenericIn(p0: GenericIn): void
|
||||||
|
public <(LGenericInv<Ljava/lang/Number;>;)V> method takesRawGenericInv(p0: GenericInv): void
|
||||||
|
public <(LGenericOut<+Ljava/lang/Number;>;)V> method takesRawGenericOut(p0: GenericOut): void
|
||||||
|
public <(Ljava/util/List<+Ljava/lang/Object;>;)V> method takesRawList(p0: java.util.List): void
|
||||||
|
public <null> method <init>(@org.jetbrains.annotations.NotNull p0: JRaw): void
|
||||||
|
private synthetic final field <null> $$delegate_0: JRaw
|
||||||
|
}
|
||||||
|
|
||||||
|
@kotlin.Metadata
|
||||||
|
public final class<null> RawTypeInSignatureKt {
|
||||||
|
// source: 'rawTypeInSignature.kt'
|
||||||
|
public final static <(LJRaw;)LGenericIn<Ljava/lang/Number;>;> method testReturnsRawGenericIn(@org.jetbrains.annotations.NotNull p0: JRaw): GenericIn
|
||||||
|
public final static <(LJRaw;)LGenericInv<Ljava/lang/Number;>;> method testReturnsRawGenericInv(@org.jetbrains.annotations.NotNull p0: JRaw): GenericInv
|
||||||
|
public final static <(LJRaw;)LGenericOut<Ljava/lang/Number;>;> method testReturnsRawGenericOut(@org.jetbrains.annotations.NotNull p0: JRaw): GenericOut
|
||||||
|
}
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
FILE fqName:<root> fileName:/rawTypeInSignature.kt
|
||||||
|
CLASS CLASS name:GenericInv modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericInv<T of <root>.GenericInv>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericInv<T of <root>.GenericInv> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericInv modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
CLASS CLASS name:GenericIn modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericIn<T of <root>.GenericIn>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance:in superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericIn<T of <root>.GenericIn> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericIn modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
CLASS CLASS name:GenericOut modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericOut<T of <root>.GenericOut>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericOut<T of <root>.GenericOut> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericOut modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:<root>.GenericInv<*>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: <root>.JRaw): <root>.GenericInv<*>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericInv (): <root>.GenericInv<*>? declared in <root>.JRaw' type=<root>.GenericInv<*>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericInv' type=<root>.JRaw origin=null
|
||||||
|
FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:<root>.GenericIn<kotlin.Nothing>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: <root>.JRaw): <root>.GenericIn<kotlin.Nothing>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericIn (): <root>.GenericIn<kotlin.Nothing>? declared in <root>.JRaw' type=<root>.GenericIn<kotlin.Nothing>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericIn' type=<root>.JRaw origin=null
|
||||||
|
FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:<root>.GenericOut<*>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: <root>.JRaw): <root>.GenericOut<*>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericOut (): <root>.GenericOut<*>? declared in <root>.JRaw' type=<root>.GenericOut<*>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericOut' type=<root>.JRaw origin=null
|
||||||
|
CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[<root>.JRaw]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KRaw
|
||||||
|
CONSTRUCTOR visibility:public <> (j:<root>.JRaw) returnType:<root>.KRaw [primary]
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[<root>.JRaw]'
|
||||||
|
SET_FIELD 'FIELD DELEGATE name:<$$delegate_0> type:<root>.JRaw visibility:local [final]' type=kotlin.Unit origin=EQ
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw' type=<root>.KRaw origin=null
|
||||||
|
value: GET_VAR 'j: <root>.JRaw declared in <root>.KRaw.<init>' type=<root>.JRaw origin=null
|
||||||
|
FIELD DELEGATE name:<$$delegate_0> type:<root>.JRaw visibility:local [final]
|
||||||
|
FUN FAKE_OVERRIDE name:takesRawList visibility:public modality:OPEN <> ($this:<root>.JRaw, list:kotlin.collections.List<*>?) returnType:kotlin.Unit [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawList (list: kotlin.collections.List<*>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
VALUE_PARAMETER name:list index:0 type:kotlin.collections.List<*>?
|
||||||
|
FUN FAKE_OVERRIDE name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.JRaw) returnType:kotlin.collections.List<*>? [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawList (): kotlin.collections.List<*>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
FUN FAKE_OVERRIDE name:takesRawGenericInv visibility:public modality:OPEN <> ($this:<root>.JRaw, g:<root>.GenericInv<*>?) returnType:kotlin.Unit [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericInv (g: <root>.GenericInv<*>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:<root>.GenericInv<*>?
|
||||||
|
FUN FAKE_OVERRIDE name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:<root>.JRaw) returnType:<root>.GenericInv<*>? [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericInv (): <root>.GenericInv<*>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
FUN FAKE_OVERRIDE name:takesRawGenericIn visibility:public modality:OPEN <> ($this:<root>.JRaw, g:<root>.GenericIn<kotlin.Nothing>?) returnType:kotlin.Unit [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericIn (g: <root>.GenericIn<kotlin.Nothing>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:<root>.GenericIn<kotlin.Nothing>?
|
||||||
|
FUN FAKE_OVERRIDE name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:<root>.JRaw) returnType:<root>.GenericIn<kotlin.Nothing>? [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericIn (): <root>.GenericIn<kotlin.Nothing>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
FUN FAKE_OVERRIDE name:takesRawGenericOut visibility:public modality:OPEN <> ($this:<root>.JRaw, g:<root>.GenericOut<*>?) returnType:kotlin.Unit [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericOut (g: <root>.GenericOut<*>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:<root>.GenericOut<*>?
|
||||||
|
FUN FAKE_OVERRIDE name:returnsRawGenericOut visibility:public modality:OPEN <> ($this:<root>.JRaw) returnType:<root>.GenericOut<*>? [fake_override]
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericOut (): <root>.GenericOut<*>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.JRaw
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
// FILE: rawTypeInSignature.kt
|
||||||
|
|
||||||
|
class GenericInv<T : Number>
|
||||||
|
class GenericIn<in T : Number>
|
||||||
|
class GenericOut<out T : Number>
|
||||||
|
|
||||||
|
fun testReturnsRawGenericInv(j: JRaw) = j.returnsRawGenericInv()
|
||||||
|
|
||||||
|
fun testReturnsRawGenericIn(j: JRaw) = j.returnsRawGenericIn()
|
||||||
|
|
||||||
|
fun testReturnsRawGenericOut(j: JRaw) = j.returnsRawGenericOut()
|
||||||
|
|
||||||
|
class KRaw(j: JRaw) : JRaw by j
|
||||||
|
|
||||||
|
// FILE: JRaw.java
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public interface JRaw {
|
||||||
|
void takesRawList(List list);
|
||||||
|
List returnsRawList();
|
||||||
|
void takesRawGenericInv(GenericInv g);
|
||||||
|
GenericInv returnsRawGenericInv();
|
||||||
|
void takesRawGenericIn(GenericIn g);
|
||||||
|
GenericIn returnsRawGenericIn();
|
||||||
|
void takesRawGenericOut(GenericOut g);
|
||||||
|
GenericOut returnsRawGenericOut();
|
||||||
|
}
|
||||||
@@ -0,0 +1,178 @@
|
|||||||
|
FILE fqName:<root> fileName:/rawTypeInSignature.kt
|
||||||
|
CLASS CLASS name:GenericInv modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericInv<T of <root>.GenericInv>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericInv<T of <root>.GenericInv> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericInv modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
CLASS CLASS name:GenericIn modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericIn<T of <root>.GenericIn>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance:in superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericIn<T of <root>.GenericIn> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericIn modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
CLASS CLASS name:GenericOut modality:FINAL visibility:public superTypes:[kotlin.Any]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.GenericOut<T of <root>.GenericOut>
|
||||||
|
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Number]
|
||||||
|
CONSTRUCTOR visibility:public <> () returnType:<root>.GenericOut<T of <root>.GenericOut> [primary]
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:GenericOut modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] <root>.GenericInv<kotlin.Number>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: <root>.JRaw): @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericInv<kotlin.Number>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericInv' type=<root>.JRaw origin=null
|
||||||
|
FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] <root>.GenericIn<kotlin.Number>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: <root>.JRaw): @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericIn<kotlin.Number>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericIn' type=<root>.JRaw origin=null
|
||||||
|
FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:<root>.JRaw) returnType:@[FlexibleNullability] <root>.GenericOut<kotlin.Number>?
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: <root>.JRaw): @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>'
|
||||||
|
CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericOut<kotlin.Number>? origin=null
|
||||||
|
$this: GET_VAR 'j: <root>.JRaw declared in <root>.testReturnsRawGenericOut' type=<root>.JRaw origin=null
|
||||||
|
CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[<root>.JRaw]
|
||||||
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KRaw
|
||||||
|
CONSTRUCTOR visibility:public <> (j:<root>.JRaw) returnType:<root>.KRaw [primary]
|
||||||
|
VALUE_PARAMETER name:j index:0 type:<root>.JRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[<root>.JRaw]'
|
||||||
|
FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]
|
||||||
|
EXPRESSION_BODY
|
||||||
|
GET_VAR 'j: <root>.JRaw declared in <root>.KRaw.<init>' type=<root>.JRaw origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] <root>.GenericIn<kotlin.Number>?
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericIn (): @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericIn (): @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>.KRaw'
|
||||||
|
CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericIn<kotlin.Number>? origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawGenericIn' type=<root>.KRaw origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] <root>.GenericInv<kotlin.Number>?
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericInv (): @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericInv (): @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>.KRaw'
|
||||||
|
CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericInv<kotlin.Number>? origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawGenericInv' type=<root>.KRaw origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:returnsRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] <root>.GenericOut<kotlin.Number>?
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawGenericOut (): @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public open fun returnsRawGenericOut (): @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>.KRaw'
|
||||||
|
CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>.JRaw' type=@[FlexibleNullability] <root>.GenericOut<kotlin.Number>? origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawGenericOut' type=<root>.KRaw origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:<root>.KRaw) returnType:@[FlexibleNullability] kotlin.collections.List<kotlin.Any?>?
|
||||||
|
overridden:
|
||||||
|
public abstract fun returnsRawList (): @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
BLOCK_BODY
|
||||||
|
RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? declared in <root>.KRaw'
|
||||||
|
CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? declared in <root>.JRaw' type=@[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.returnsRawList' type=<root>.KRaw origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:takesRawGenericIn visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] <root>.GenericIn<kotlin.Number>?) returnType:kotlin.Unit
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericIn (g: @[FlexibleNullability] <root>.GenericIn<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] <root>.GenericIn<kotlin.Number>?
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun takesRawGenericIn (g: @[FlexibleNullability] <root>.GenericIn<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawGenericIn' type=<root>.KRaw origin=null
|
||||||
|
g: GET_VAR 'g: @[FlexibleNullability] <root>.GenericIn<kotlin.Number>? declared in <root>.KRaw.takesRawGenericIn' type=@[FlexibleNullability] <root>.GenericIn<kotlin.Number>? origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:takesRawGenericInv visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] <root>.GenericInv<kotlin.Number>?) returnType:kotlin.Unit
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericInv (g: @[FlexibleNullability] <root>.GenericInv<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] <root>.GenericInv<kotlin.Number>?
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun takesRawGenericInv (g: @[FlexibleNullability] <root>.GenericInv<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawGenericInv' type=<root>.KRaw origin=null
|
||||||
|
g: GET_VAR 'g: @[FlexibleNullability] <root>.GenericInv<kotlin.Number>? declared in <root>.KRaw.takesRawGenericInv' type=@[FlexibleNullability] <root>.GenericInv<kotlin.Number>? origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:takesRawGenericOut visibility:public modality:OPEN <> ($this:<root>.KRaw, g:@[FlexibleNullability] <root>.GenericOut<kotlin.Number>?) returnType:kotlin.Unit
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawGenericOut (g: @[FlexibleNullability] <root>.GenericOut<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] <root>.GenericOut<kotlin.Number>?
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun takesRawGenericOut (g: @[FlexibleNullability] <root>.GenericOut<kotlin.Number>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawGenericOut' type=<root>.KRaw origin=null
|
||||||
|
g: GET_VAR 'g: @[FlexibleNullability] <root>.GenericOut<kotlin.Number>? declared in <root>.KRaw.takesRawGenericOut' type=@[FlexibleNullability] <root>.GenericOut<kotlin.Number>? origin=null
|
||||||
|
FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:<root>.KRaw, list:@[FlexibleNullability] kotlin.collections.List<kotlin.Any?>?) returnType:kotlin.Unit
|
||||||
|
overridden:
|
||||||
|
public abstract fun takesRawList (list: @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:<root>.KRaw
|
||||||
|
VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] kotlin.collections.List<kotlin.Any?>?
|
||||||
|
BLOCK_BODY
|
||||||
|
CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>?): kotlin.Unit declared in <root>.JRaw' type=kotlin.Unit origin=null
|
||||||
|
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JRaw visibility:private [final]' type=<root>.JRaw origin=null
|
||||||
|
receiver: GET_VAR '<this>: <root>.KRaw declared in <root>.KRaw.takesRawList' type=<root>.KRaw origin=null
|
||||||
|
list: GET_VAR 'list: @[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? declared in <root>.KRaw.takesRawList' type=@[FlexibleNullability] kotlin.collections.List<kotlin.Any?>? origin=null
|
||||||
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
|
overridden:
|
||||||
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||||
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||||
|
overridden:
|
||||||
|
public open fun toString (): kotlin.String [fake_override] declared in <root>.JRaw
|
||||||
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||||
+5
@@ -149,6 +149,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeListing/privateNestedClassInInterface.kt");
|
runTest("compiler/testData/codegen/bytecodeListing/privateNestedClassInInterface.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("rawTypeInSignature.kt")
|
||||||
|
public void testRawTypeInSignature() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeListing/rawTypeInSignature.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("samAdapterAndInlinedOne.kt")
|
@TestMetadata("samAdapterAndInlinedOne.kt")
|
||||||
public void testSamAdapterAndInlinedOne() throws Exception {
|
public void testSamAdapterAndInlinedOne() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeListing/samAdapterAndInlinedOne.kt");
|
runTest("compiler/testData/codegen/bytecodeListing/samAdapterAndInlinedOne.kt");
|
||||||
|
|||||||
+5
@@ -149,6 +149,11 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes
|
|||||||
runTest("compiler/testData/codegen/bytecodeListing/privateNestedClassInInterface.kt");
|
runTest("compiler/testData/codegen/bytecodeListing/privateNestedClassInInterface.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("rawTypeInSignature.kt")
|
||||||
|
public void testRawTypeInSignature() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeListing/rawTypeInSignature.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("samAdapterAndInlinedOne.kt")
|
@TestMetadata("samAdapterAndInlinedOne.kt")
|
||||||
public void testSamAdapterAndInlinedOne() throws Exception {
|
public void testSamAdapterAndInlinedOne() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeListing/samAdapterAndInlinedOne.kt");
|
runTest("compiler/testData/codegen/bytecodeListing/samAdapterAndInlinedOne.kt");
|
||||||
|
|||||||
@@ -2039,6 +2039,11 @@ public class IrTextTestCaseGenerated extends AbstractIrTextTestCase {
|
|||||||
runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType_NI.kt");
|
runTest("compiler/testData/ir/irText/types/localVariableOfIntersectionType_NI.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("rawTypeInSignature.kt")
|
||||||
|
public void testRawTypeInSignature() throws Exception {
|
||||||
|
runTest("compiler/testData/ir/irText/types/rawTypeInSignature.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("receiverOfIntersectionType.kt")
|
@TestMetadata("receiverOfIntersectionType.kt")
|
||||||
public void testReceiverOfIntersectionType() throws Exception {
|
public void testReceiverOfIntersectionType() throws Exception {
|
||||||
runTest("compiler/testData/ir/irText/types/receiverOfIntersectionType.kt");
|
runTest("compiler/testData/ir/irText/types/receiverOfIntersectionType.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user