Reflection.smali
.class public Lkotlin/jvm/internal/Reflection;
.super Ljava/lang/Object;
.source "Reflection.java"
# static fields
.field private static final EMPTY_K_CLASS_ARRAY:[Lkotlin/reflect/KClass;
.field static final REFLECTION_NOT_AVAILABLE:Ljava/lang/String; = " (Kotlin reflection is not available)"
.field private static final factory:Lkotlin/jvm/internal/ReflectionFactory;
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 26
const/4 v0, 0x0
:try_start_1
const-string v1, "kotlin.reflect.jvm.internal.ReflectionFactoryImpl"
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
.line 27
.local v1, "implClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lkotlin/jvm/internal/ReflectionFactory;
:try_end_d
.catch Ljava/lang/ClassCastException; {:try_start_1 .. :try_end_d} :catch_18
.catch Ljava/lang/ClassNotFoundException; {:try_start_1 .. :try_end_d} :catch_15
.catch Ljava/lang/InstantiationException; {:try_start_1 .. :try_end_d} :catch_12
.catch Ljava/lang/IllegalAccessException; {:try_start_1 .. :try_end_d} :catch_f
move-object v0, v2
.end local v1 # "implClass":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.local v0, "impl":Lkotlin/jvm/internal/ReflectionFactory;
goto :goto_1a
.line 32
.end local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
:catch_f
move-exception v1
.restart local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
.local v1, "e":Ljava/lang/IllegalAccessException;
const/4 v0, 0x0
goto :goto_1b
.line 31
.end local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
.end local v1 # "e":Ljava/lang/IllegalAccessException;
:catch_12
move-exception v1
.restart local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
.local v1, "e":Ljava/lang/InstantiationException;
const/4 v0, 0x0
.end local v1 # "e":Ljava/lang/InstantiationException;
goto :goto_1a
.line 30
.end local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
:catch_15
move-exception v1
.restart local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
.local v1, "e":Ljava/lang/ClassNotFoundException;
const/4 v0, 0x0
.end local v1 # "e":Ljava/lang/ClassNotFoundException;
goto :goto_1a
.line 29
.end local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
:catch_18
move-exception v1
.restart local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
.local v1, "e":Ljava/lang/ClassCastException;
const/4 v0, 0x0
.line 32
.end local v1 # "e":Ljava/lang/ClassCastException;
:goto_1a
nop
.line 34
:goto_1b
if-eqz v0, :cond_1f
move-object v1, v0
goto :goto_24
:cond_1f
new-instance v1, Lkotlin/jvm/internal/ReflectionFactory;
invoke-direct {v1}, Lkotlin/jvm/internal/ReflectionFactory;-><init>()V
:goto_24
sput-object v1, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
.line 39
.end local v0 # "impl":Lkotlin/jvm/internal/ReflectionFactory;
const/4 v0, 0x0
new-array v0, v0, [Lkotlin/reflect/KClass;
sput-object v0, Lkotlin/jvm/internal/Reflection;->EMPTY_K_CLASS_ARRAY:[Lkotlin/reflect/KClass;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static createKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
.registers 2
.param p0, "javaClass" # Ljava/lang/Class;
.line 42
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->createKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v0
return-object v0
.end method
.method public static createKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass;
.registers 3
.param p0, "javaClass" # Ljava/lang/Class;
.param p1, "internalName" # Ljava/lang/String;
.line 46
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0, p1}, Lkotlin/jvm/internal/ReflectionFactory;->createKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass;
move-result-object v0
return-object v0
.end method
.method public static function(Lkotlin/jvm/internal/FunctionReference;)Lkotlin/reflect/KFunction;
.registers 2
.param p0, "f" # Lkotlin/jvm/internal/FunctionReference;
.line 84
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->function(Lkotlin/jvm/internal/FunctionReference;)Lkotlin/reflect/KFunction;
move-result-object v0
return-object v0
.end method
.method public static getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
.registers 2
.param p0, "javaClass" # Ljava/lang/Class;
.line 54
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v0
return-object v0
.end method
.method public static getOrCreateKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass;
.registers 3
.param p0, "javaClass" # Ljava/lang/Class;
.param p1, "internalName" # Ljava/lang/String;
.line 58
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0, p1}, Lkotlin/jvm/internal/ReflectionFactory;->getOrCreateKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass;
move-result-object v0
return-object v0
.end method
.method public static getOrCreateKotlinClasses([Ljava/lang/Class;)[Lkotlin/reflect/KClass;
.registers 5
.param p0, "javaClasses" # [Ljava/lang/Class;
.line 62
array-length v0, p0
.line 63
.local v0, "size":I
if-nez v0, :cond_6
sget-object v1, Lkotlin/jvm/internal/Reflection;->EMPTY_K_CLASS_ARRAY:[Lkotlin/reflect/KClass;
return-object v1
.line 64
:cond_6
new-array v1, v0, [Lkotlin/reflect/KClass;
.line 65
.local v1, "kClasses":[Lkotlin/reflect/KClass;
const/4 v2, 0x0
.local v2, "i":I
:goto_9
if-ge v2, v0, :cond_16
.line 66
aget-object v3, p0, v2
invoke-static {v3}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v3
aput-object v3, v1, v2
.line 65
add-int/lit8 v2, v2, 0x1
goto :goto_9
.line 68
.end local v2 # "i":I
:cond_16
return-object v1
.end method
.method public static getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer;
.registers 3
.param p0, "javaClass" # Ljava/lang/Class;
.param p1, "moduleName" # Ljava/lang/String;
.line 50
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0, p1}, Lkotlin/jvm/internal/ReflectionFactory;->getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer;
move-result-object v0
return-object v0
.end method
.method public static mutableProperty0(Lkotlin/jvm/internal/MutablePropertyReference0;)Lkotlin/reflect/KMutableProperty0;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/MutablePropertyReference0;
.line 94
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->mutableProperty0(Lkotlin/jvm/internal/MutablePropertyReference0;)Lkotlin/reflect/KMutableProperty0;
move-result-object v0
return-object v0
.end method
.method public static mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/MutablePropertyReference1;
.line 102
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1;
move-result-object v0
return-object v0
.end method
.method public static mutableProperty2(Lkotlin/jvm/internal/MutablePropertyReference2;)Lkotlin/reflect/KMutableProperty2;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/MutablePropertyReference2;
.line 110
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->mutableProperty2(Lkotlin/jvm/internal/MutablePropertyReference2;)Lkotlin/reflect/KMutableProperty2;
move-result-object v0
return-object v0
.end method
.method public static nullableTypeOf(Ljava/lang/Class;)Lkotlin/reflect/KType;
.registers 5
.param p0, "klass" # Ljava/lang/Class;
.line 137
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static nullableTypeOf(Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 6
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arg1" # Lkotlin/reflect/KTypeProjection;
.line 142
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static nullableTypeOf(Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 7
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arg1" # Lkotlin/reflect/KTypeProjection;
.param p2, "arg2" # Lkotlin/reflect/KTypeProjection;
.line 147
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
const/4 v2, 0x2
new-array v2, v2, [Lkotlin/reflect/KTypeProjection;
const/4 v3, 0x0
aput-object p1, v2, v3
const/4 v3, 0x1
aput-object p2, v2, v3
invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static varargs nullableTypeOf(Ljava/lang/Class;[Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 6
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arguments" # [Lkotlin/reflect/KTypeProjection;
.line 152
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {p1}, Lkotlin/collections/ArraysKt;->toList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
const/4 v3, 0x1
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static property0(Lkotlin/jvm/internal/PropertyReference0;)Lkotlin/reflect/KProperty0;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/PropertyReference0;
.line 90
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->property0(Lkotlin/jvm/internal/PropertyReference0;)Lkotlin/reflect/KProperty0;
move-result-object v0
return-object v0
.end method
.method public static property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/PropertyReference1;
.line 98
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
move-result-object v0
return-object v0
.end method
.method public static property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;
.registers 2
.param p0, "p" # Lkotlin/jvm/internal/PropertyReference2;
.line 106
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2;
move-result-object v0
return-object v0
.end method
.method public static renderLambdaToString(Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String;
.registers 2
.param p0, "lambda" # Lkotlin/jvm/internal/FunctionBase;
.line 78
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->renderLambdaToString(Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static renderLambdaToString(Lkotlin/jvm/internal/Lambda;)Ljava/lang/String;
.registers 2
.param p0, "lambda" # Lkotlin/jvm/internal/Lambda;
.line 73
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-virtual {v0, p0}, Lkotlin/jvm/internal/ReflectionFactory;->renderLambdaToString(Lkotlin/jvm/internal/Lambda;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static typeOf(Ljava/lang/Class;)Lkotlin/reflect/KType;
.registers 5
.param p0, "klass" # Ljava/lang/Class;
.line 117
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static typeOf(Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 6
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arg1" # Lkotlin/reflect/KTypeProjection;
.line 122
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {p1}, Ljava/util/Collections;->singletonList(Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static typeOf(Ljava/lang/Class;Lkotlin/reflect/KTypeProjection;Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 8
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arg1" # Lkotlin/reflect/KTypeProjection;
.param p2, "arg2" # Lkotlin/reflect/KTypeProjection;
.line 127
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
const/4 v2, 0x2
new-array v2, v2, [Lkotlin/reflect/KTypeProjection;
const/4 v3, 0x0
aput-object p1, v2, v3
const/4 v4, 0x1
aput-object p2, v2, v4
invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method
.method public static varargs typeOf(Ljava/lang/Class;[Lkotlin/reflect/KTypeProjection;)Lkotlin/reflect/KType;
.registers 6
.param p0, "klass" # Ljava/lang/Class;
.param p1, "arguments" # [Lkotlin/reflect/KTypeProjection;
.line 132
sget-object v0, Lkotlin/jvm/internal/Reflection;->factory:Lkotlin/jvm/internal/ReflectionFactory;
invoke-static {p0}, Lkotlin/jvm/internal/Reflection;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass;
move-result-object v1
invoke-static {p1}, Lkotlin/collections/ArraysKt;->toList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
const/4 v3, 0x0
invoke-virtual {v0, v1, v2, v3}, Lkotlin/jvm/internal/ReflectionFactory;->typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType;
move-result-object v0
return-object v0
.end method