.class public Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl; .super Lkotlin/jvm/internal/ReflectionFactory; .source "ReflectionFactoryImpl.java" # direct methods .method public constructor ()V .registers 1 .line 32 invoke-direct {p0}, Lkotlin/jvm/internal/ReflectionFactory;->()V return-void .end method .method public static clearCaches()V .registers 0 .line 150 invoke-static {}, Lkotlin/reflect/jvm/internal/KClassCacheKt;->clearKClassCache()V .line 151 invoke-static {}, Lkotlin/reflect/jvm/internal/ModuleByClassLoaderKt;->clearModuleByClassLoaderCache()V return-void .end method .method private static getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; .registers 2 .line 115 invoke-virtual {p0}, Lkotlin/jvm/internal/CallableReference;->getOwner()Lkotlin/reflect/KDeclarationContainer; move-result-object p0 .line 116 instance-of v0, p0, Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; if-eqz v0, :cond_b check-cast p0, Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; goto :goto_d :cond_b sget-object p0, Lkotlin/reflect/jvm/internal/EmptyContainerForLocal;->INSTANCE:Lkotlin/reflect/jvm/internal/EmptyContainerForLocal; :goto_d return-object p0 .end method # virtual methods .method public createKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass; .registers 3 .line 35 new-instance v0, Lkotlin/reflect/jvm/internal/KClassImpl; invoke-direct {v0, p1}, Lkotlin/reflect/jvm/internal/KClassImpl;->(Ljava/lang/Class;)V return-object v0 .end method .method public createKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass; .registers 3 .line 40 new-instance p2, Lkotlin/reflect/jvm/internal/KClassImpl; invoke-direct {p2, p1}, Lkotlin/reflect/jvm/internal/KClassImpl;->(Ljava/lang/Class;)V return-object p2 .end method .method public function(Lkotlin/jvm/internal/FunctionReference;)Lkotlin/reflect/KFunction; .registers 6 .line 79 new-instance v0, Lkotlin/reflect/jvm/internal/KFunctionImpl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/FunctionReference;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/FunctionReference;->getSignature()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Lkotlin/jvm/internal/FunctionReference;->getBoundReceiver()Ljava/lang/Object; move-result-object p1 invoke-direct {v0, v1, v2, v3, p1}, Lkotlin/reflect/jvm/internal/KFunctionImpl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V return-object v0 .end method .method public getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/KClass; .registers 2 .line 50 invoke-static {p1}, Lkotlin/reflect/jvm/internal/KClassCacheKt;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl; move-result-object p1 return-object p1 .end method .method public getOrCreateKotlinClass(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KClass; .registers 3 .line 55 invoke-static {p1}, Lkotlin/reflect/jvm/internal/KClassCacheKt;->getOrCreateKotlinClass(Ljava/lang/Class;)Lkotlin/reflect/jvm/internal/KClassImpl; move-result-object p1 return-object p1 .end method .method public getOrCreateKotlinPackage(Ljava/lang/Class;Ljava/lang/String;)Lkotlin/reflect/KDeclarationContainer; .registers 4 .line 45 new-instance v0, Lkotlin/reflect/jvm/internal/KPackageImpl; invoke-direct {v0, p1, p2}, Lkotlin/reflect/jvm/internal/KPackageImpl;->(Ljava/lang/Class;Ljava/lang/String;)V return-object v0 .end method .method public mutableProperty0(Lkotlin/jvm/internal/MutablePropertyReference0;)Lkotlin/reflect/KMutableProperty0; .registers 6 .line 91 new-instance v0, Lkotlin/reflect/jvm/internal/KMutableProperty0Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference0;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference0;->getSignature()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference0;->getBoundReceiver()Ljava/lang/Object; move-result-object p1 invoke-direct {v0, v1, v2, v3, p1}, Lkotlin/reflect/jvm/internal/KMutableProperty0Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V return-object v0 .end method .method public mutableProperty1(Lkotlin/jvm/internal/MutablePropertyReference1;)Lkotlin/reflect/KMutableProperty1; .registers 6 .line 101 new-instance v0, Lkotlin/reflect/jvm/internal/KMutableProperty1Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference1;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference1;->getSignature()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference1;->getBoundReceiver()Ljava/lang/Object; move-result-object p1 invoke-direct {v0, v1, v2, v3, p1}, Lkotlin/reflect/jvm/internal/KMutableProperty1Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V return-object v0 .end method .method public mutableProperty2(Lkotlin/jvm/internal/MutablePropertyReference2;)Lkotlin/reflect/KMutableProperty2; .registers 5 .line 111 new-instance v0, Lkotlin/reflect/jvm/internal/KMutableProperty2Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference2;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/MutablePropertyReference2;->getSignature()Ljava/lang/String; move-result-object p1 invoke-direct {v0, v1, v2, p1}, Lkotlin/reflect/jvm/internal/KMutableProperty2Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;)V return-object v0 .end method .method public property0(Lkotlin/jvm/internal/PropertyReference0;)Lkotlin/reflect/KProperty0; .registers 6 .line 86 new-instance v0, Lkotlin/reflect/jvm/internal/KProperty0Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference0;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference0;->getSignature()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference0;->getBoundReceiver()Ljava/lang/Object; move-result-object p1 invoke-direct {v0, v1, v2, v3, p1}, Lkotlin/reflect/jvm/internal/KProperty0Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V return-object v0 .end method .method public property1(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1; .registers 6 .line 96 new-instance v0, Lkotlin/reflect/jvm/internal/KProperty1Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference1;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference1;->getSignature()Ljava/lang/String; move-result-object v3 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference1;->getBoundReceiver()Ljava/lang/Object; move-result-object p1 invoke-direct {v0, v1, v2, v3, p1}, Lkotlin/reflect/jvm/internal/KProperty1Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V return-object v0 .end method .method public property2(Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/KProperty2; .registers 5 .line 106 new-instance v0, Lkotlin/reflect/jvm/internal/KProperty2Impl; invoke-static {p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->getOwner(Lkotlin/jvm/internal/CallableReference;)Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl; move-result-object v1 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference2;->getName()Ljava/lang/String; move-result-object v2 invoke-virtual {p1}, Lkotlin/jvm/internal/PropertyReference2;->getSignature()Ljava/lang/String; move-result-object p1 invoke-direct {v0, v1, v2, p1}, Lkotlin/reflect/jvm/internal/KProperty2Impl;->(Lkotlin/reflect/jvm/internal/KDeclarationContainerImpl;Ljava/lang/String;Ljava/lang/String;)V return-object v0 .end method .method public renderLambdaToString(Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String; .registers 3 .line 65 invoke-static {p1}, Lkotlin/reflect/jvm/ReflectLambdaKt;->reflect(Lkotlin/Function;)Lkotlin/reflect/KFunction; move-result-object v0 if-eqz v0, :cond_17 .line 67 invoke-static {v0}, Lkotlin/reflect/jvm/internal/UtilKt;->asKFunctionImpl(Ljava/lang/Object;)Lkotlin/reflect/jvm/internal/KFunctionImpl; move-result-object v0 if-eqz v0, :cond_17 .line 69 sget-object p1, Lkotlin/reflect/jvm/internal/ReflectionObjectRenderer;->INSTANCE:Lkotlin/reflect/jvm/internal/ReflectionObjectRenderer; invoke-virtual {v0}, Lkotlin/reflect/jvm/internal/KFunctionImpl;->getDescriptor()Lkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor; move-result-object v0 invoke-virtual {p1, v0}, Lkotlin/reflect/jvm/internal/ReflectionObjectRenderer;->renderLambda(Lkotlin/reflect/jvm/internal/impl/descriptors/FunctionDescriptor;)Ljava/lang/String; move-result-object p1 return-object p1 .line 72 :cond_17 invoke-super {p0, p1}, Lkotlin/jvm/internal/ReflectionFactory;->renderLambdaToString(Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public renderLambdaToString(Lkotlin/jvm/internal/Lambda;)Ljava/lang/String; .registers 2 .line 60 invoke-virtual {p0, p1}, Lkotlin/reflect/jvm/internal/ReflectionFactoryImpl;->renderLambdaToString(Lkotlin/jvm/internal/FunctionBase;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method public setUpperBounds(Lkotlin/reflect/KTypeParameter;Ljava/util/List;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/reflect/KTypeParameter;", "Ljava/util/List<", "Lkotlin/reflect/KType;", ">;)V" } .end annotation return-void .end method .method public typeOf(Lkotlin/reflect/KClassifier;Ljava/util/List;Z)Lkotlin/reflect/KType; .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/reflect/KClassifier;", "Ljava/util/List<", "Lkotlin/reflect/KTypeProjection;", ">;Z)", "Lkotlin/reflect/KType;" } .end annotation .line 123 invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List; move-result-object v0 invoke-static {p1, p2, p3, v0}, Lkotlin/reflect/full/KClassifiers;->createType(Lkotlin/reflect/KClassifier;Ljava/util/List;ZLjava/util/List;)Lkotlin/reflect/KType; move-result-object p1 return-object p1 .end method .method public typeParameter(Ljava/lang/Object;Ljava/lang/String;Lkotlin/reflect/KVariance;Z)Lkotlin/reflect/KTypeParameter; .registers 6 .line 129 instance-of p3, p1, Lkotlin/reflect/KClass; if-eqz p3, :cond_c .line 130 move-object p3, p1 check-cast p3, Lkotlin/reflect/KClass; invoke-interface {p3}, Lkotlin/reflect/KClass;->getTypeParameters()Ljava/util/List; move-result-object p3 goto :goto_17 .line 131 :cond_c instance-of p3, p1, Lkotlin/reflect/KCallable; if-eqz p3, :cond_51 .line 132 move-object p3, p1 check-cast p3, Lkotlin/reflect/KCallable; invoke-interface {p3}, Lkotlin/reflect/KCallable;->getTypeParameters()Ljava/util/List; move-result-object p3 .line 136 :goto_17 invoke-interface {p3}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p3 :cond_1b invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z move-result p4 if-eqz p4, :cond_32 invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object p4 check-cast p4, Lkotlin/reflect/KTypeParameter; .line 137 invoke-interface {p4}, Lkotlin/reflect/KTypeParameter;->getName()Ljava/lang/String; move-result-object v0 invoke-virtual {v0, p2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_1b return-object p4 .line 139 :cond_32 new-instance p3, Ljava/lang/IllegalArgumentException; new-instance p4, Ljava/lang/StringBuilder; const-string v0, "Type parameter " invoke-direct {p4, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p4, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 const-string p4, " is not found in container: " invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p3, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p3 .line 134 :cond_51 new-instance p2, Ljava/lang/IllegalArgumentException; new-instance p3, Ljava/lang/StringBuilder; const-string p4, "Type parameter container must be a class or a callable: " invoke-direct {p3, p4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p2, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p2 .end method