Support non-reified type parameters in typeOf in JVM and JVM_IR

#KT-30279 Fixed
This commit is contained in:
Alexander Udalov
2020-01-31 14:13:11 +01:00
committed by Alexander Udalov
parent 6fb40878c4
commit 0ce16b9d8c
46 changed files with 1748 additions and 122 deletions
@@ -3927,15 +3927,20 @@ public class kotlin/jvm/internal/Reflection {
public static fun nullableTypeOf (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun nullableTypeOf (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun nullableTypeOf (Ljava/lang/Class;[Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun nullableTypeOf (Lkotlin/reflect/KClassifier;)Lkotlin/reflect/KType;
public static fun property0 (Lkotlin/jvm/internal/PropertyReference0;)Lkotlin/reflect/KProperty0;
public static fun property1 (Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
public static fun property2 (Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;
public static fun renderLambdaToString (Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String;
public static fun renderLambdaToString (Lkotlin/jvm/internal/Lambda;)Ljava/lang/String;
public static fun setUpperBounds (Lkotlin/reflect/KTypeParameter;Lkotlin/reflect/KType;)V
public static fun setUpperBounds (Lkotlin/reflect/KTypeParameter;[Lkotlin/reflect/KType;)V
public static fun typeOf (Ljava/lang/Class;)Lkotlin/reflect/KType;
public static fun typeOf (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun typeOf (Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun typeOf (Ljava/lang/Class;[Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
public static fun typeOf (Lkotlin/reflect/KClassifier;)Lkotlin/reflect/KType;
public static fun typeParameter (Ljava/lang/Object;Ljava/lang/String;Lkotlin/reflect/KVariance;Z)Lkotlin/reflect/KTypeParameter;
}
public class kotlin/jvm/internal/ReflectionFactory {
@@ -3954,7 +3959,9 @@ public class kotlin/jvm/internal/ReflectionFactory {
public fun property2 (Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;
public fun renderLambdaToString (Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String;
public fun renderLambdaToString (Lkotlin/jvm/internal/Lambda;)Ljava/lang/String;
public fun setUpperBounds (Lkotlin/reflect/KTypeParameter;Ljava/util/List;)V
public fun typeOf (Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
public fun typeParameter (Ljava/lang/Object;Ljava/lang/String;Lkotlin/reflect/KVariance;Z)Lkotlin/reflect/KTypeParameter;
}
public final class kotlin/jvm/internal/ShortCompanionObject {
@@ -4027,6 +4034,23 @@ public class kotlin/jvm/internal/TypeIntrinsics {
public static fun throwCce (Ljava/lang/String;)V
}
public final class kotlin/jvm/internal/TypeParameterReference : kotlin/reflect/KTypeParameter {
public static final field Companion Lkotlin/jvm/internal/TypeParameterReference$Companion;
public fun <init> (Ljava/lang/Object;Ljava/lang/String;Lkotlin/reflect/KVariance;Z)V
public fun equals (Ljava/lang/Object;)Z
public fun getName ()Ljava/lang/String;
public fun getUpperBounds ()Ljava/util/List;
public fun getVariance ()Lkotlin/reflect/KVariance;
public fun hashCode ()I
public fun isReified ()Z
public final fun setUpperBounds (Ljava/util/List;)V
public fun toString ()Ljava/lang/String;
}
public final class kotlin/jvm/internal/TypeParameterReference$Companion {
public final fun toString (Lkotlin/reflect/KTypeParameter;)Ljava/lang/String;
}
public final class kotlin/jvm/internal/TypeReference : kotlin/reflect/KType {
public fun <init> (Lkotlin/reflect/KClassifier;Ljava/util/List;Z)V
public fun equals (Ljava/lang/Object;)Z