.class public final Lkotlin/internal/PlatformImplementationsKt; .super Ljava/lang/Object; .source "PlatformImplementations.kt" # annotations .annotation runtime Lkotlin/Metadata; d1 = { "\u0000\u001e\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u000b\n\u0000\n\u0002\u0010\u0008\n\u0002\u0008\u0004\n\u0002\u0010\u0000\n\u0002\u0008\u0004\u001a \u0010\u0002\u001a\u00020\u00032\u0006\u0010\u0004\u001a\u00020\u00052\u0006\u0010\u0006\u001a\u00020\u00052\u0006\u0010\u0007\u001a\u00020\u0005H\u0001\u001a\"\u0010\u0008\u001a\u0002H\t\"\n\u0008\u0000\u0010\t\u0018\u0001*\u00020\n2\u0006\u0010\u000b\u001a\u00020\nH\u0083\u0008\u00a2\u0006\u0002\u0010\u000c\u001a\u0008\u0010\r\u001a\u00020\u0005H\u0002\"\u0010\u0010\u0000\u001a\u00020\u00018\u0000X\u0081\u0004\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u000e" } d2 = { "IMPLEMENTATIONS", "Lkotlin/internal/PlatformImplementations;", "apiVersionIsAtLeast", "", "major", "", "minor", "patch", "castToBaseType", "T", "", "instance", "(Ljava/lang/Object;)Ljava/lang/Object;", "getJavaVersion", "kotlin-stdlib" } k = 0x2 mv = { 0x1, 0x5, 0x1 } .end annotation # static fields .field public static final IMPLEMENTATIONS:Lkotlin/internal/PlatformImplementations; # direct methods .method static constructor ()V .registers 11 .line 51 invoke-static {}, Lkotlin/internal/PlatformImplementationsKt;->getJavaVersion()I move-result v0 const v1, 0x10008 .line 52 const-string v2, "ClassCastException(\"Inst\u2026baseTypeCL\").initCause(e)" const-string v3, ", base type classloader: " const-string v4, "null cannot be cast to non-null type kotlin.internal.PlatformImplementations" const-string v5, "Class.forName(\"kotlin.in\u2026entations\").newInstance()" const-string v6, "Instance classloader: " if-lt v0, v1, :cond_ad .line 54 :try_start_13 const-string v1, "kotlin.internal.jdk8.JDK8PlatformImplementations" invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v1 invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v1 invoke-static {v1, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :try_end_20 .catch Ljava/lang/ClassNotFoundException; {:try_start_13 .. :try_end_20} :catch_60 if-eqz v1, :cond_28 :try_start_22 check-cast v1, Lkotlin/internal/PlatformImplementations; goto/16 :goto_152 :catch_26 move-exception v7 goto :goto_2e :cond_28 new-instance v7, Ljava/lang/NullPointerException; invoke-direct {v7, v4}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v7 :try_end_2e .catch Ljava/lang/ClassCastException; {:try_start_22 .. :try_end_2e} :catch_26 .catch Ljava/lang/ClassNotFoundException; {:try_start_22 .. :try_end_2e} :catch_60 :goto_2e :try_start_2e invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v1 const-class v8, Lkotlin/internal/PlatformImplementations; invoke-virtual {v8}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v8 new-instance v9, Ljava/lang/ClassCastException; new-instance v10, Ljava/lang/StringBuilder; invoke-direct {v10, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v10, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v9, v1}, Ljava/lang/ClassCastException;->(Ljava/lang/String;)V check-cast v7, Ljava/lang/Throwable; invoke-virtual {v9, v7}, Ljava/lang/ClassCastException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; move-result-object v1 invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V throw v1 :try_end_60 .catch Ljava/lang/ClassNotFoundException; {:try_start_2e .. :try_end_60} :catch_60 .line 57 :catch_60 :try_start_60 const-string v1, "kotlin.internal.JRE8PlatformImplementations" invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v1 invoke-virtual {v1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v1 invoke-static {v1, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :try_end_6d .catch Ljava/lang/ClassNotFoundException; {:try_start_60 .. :try_end_6d} :catch_ad if-eqz v1, :cond_75 :try_start_6f check-cast v1, Lkotlin/internal/PlatformImplementations; goto/16 :goto_152 :catch_73 move-exception v7 goto :goto_7b :cond_75 new-instance v7, Ljava/lang/NullPointerException; invoke-direct {v7, v4}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v7 :try_end_7b .catch Ljava/lang/ClassCastException; {:try_start_6f .. :try_end_7b} :catch_73 .catch Ljava/lang/ClassNotFoundException; {:try_start_6f .. :try_end_7b} :catch_ad :goto_7b :try_start_7b invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v1 invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v1 const-class v8, Lkotlin/internal/PlatformImplementations; invoke-virtual {v8}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v8 new-instance v9, Ljava/lang/ClassCastException; new-instance v10, Ljava/lang/StringBuilder; invoke-direct {v10, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v10, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v9, v1}, Ljava/lang/ClassCastException;->(Ljava/lang/String;)V check-cast v7, Ljava/lang/Throwable; invoke-virtual {v9, v7}, Ljava/lang/ClassCastException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; move-result-object v1 invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V throw v1 :try_end_ad .catch Ljava/lang/ClassNotFoundException; {:try_start_7b .. :try_end_ad} :catch_ad :catch_ad :cond_ad const v1, 0x10007 if-lt v0, v1, :cond_14d .line 63 :try_start_b2 const-string v0, "kotlin.internal.jdk7.JDK7PlatformImplementations" invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v0 invoke-static {v0, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :try_end_bf .catch Ljava/lang/ClassNotFoundException; {:try_start_b2 .. :try_end_bf} :catch_100 if-eqz v0, :cond_c8 :try_start_c1 move-object v1, v0 check-cast v1, Lkotlin/internal/PlatformImplementations; goto/16 :goto_152 :catch_c6 move-exception v1 goto :goto_ce :cond_c8 new-instance v1, Ljava/lang/NullPointerException; invoke-direct {v1, v4}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v1 :try_end_ce .catch Ljava/lang/ClassCastException; {:try_start_c1 .. :try_end_ce} :catch_c6 .catch Ljava/lang/ClassNotFoundException; {:try_start_c1 .. :try_end_ce} :catch_100 :goto_ce :try_start_ce invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v0 const-class v7, Lkotlin/internal/PlatformImplementations; invoke-virtual {v7}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v7 new-instance v8, Ljava/lang/ClassCastException; new-instance v9, Ljava/lang/StringBuilder; invoke-direct {v9, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v9, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v8, v0}, Ljava/lang/ClassCastException;->(Ljava/lang/String;)V check-cast v1, Ljava/lang/Throwable; invoke-virtual {v8, v1}, Ljava/lang/ClassCastException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; move-result-object v0 invoke-static {v0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V throw v0 :try_end_100 .catch Ljava/lang/ClassNotFoundException; {:try_start_ce .. :try_end_100} :catch_100 .line 66 :catch_100 :try_start_100 const-string v0, "kotlin.internal.JRE7PlatformImplementations" invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object v0 invoke-static {v0, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V :try_end_10d .catch Ljava/lang/ClassNotFoundException; {:try_start_100 .. :try_end_10d} :catch_14d if-eqz v0, :cond_115 :try_start_10f move-object v1, v0 check-cast v1, Lkotlin/internal/PlatformImplementations; goto :goto_152 :catch_113 move-exception v1 goto :goto_11b :cond_115 new-instance v1, Ljava/lang/NullPointerException; invoke-direct {v1, v4}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v1 :try_end_11b .catch Ljava/lang/ClassCastException; {:try_start_10f .. :try_end_11b} :catch_113 .catch Ljava/lang/ClassNotFoundException; {:try_start_10f .. :try_end_11b} :catch_14d :goto_11b :try_start_11b invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object v0 invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v0 const-class v4, Lkotlin/internal/PlatformImplementations; invoke-virtual {v4}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v4 new-instance v5, Ljava/lang/ClassCastException; new-instance v7, Ljava/lang/StringBuilder; invoke-direct {v7, v6}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v5, v0}, Ljava/lang/ClassCastException;->(Ljava/lang/String;)V check-cast v1, Ljava/lang/Throwable; invoke-virtual {v5, v1}, Ljava/lang/ClassCastException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; move-result-object v0 invoke-static {v0, v2}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V throw v0 :try_end_14d .catch Ljava/lang/ClassNotFoundException; {:try_start_11b .. :try_end_14d} :catch_14d .line 70 :catch_14d :cond_14d new-instance v1, Lkotlin/internal/PlatformImplementations; invoke-direct {v1}, Lkotlin/internal/PlatformImplementations;->()V .line 50 :goto_152 sput-object v1, Lkotlin/internal/PlatformImplementationsKt;->IMPLEMENTATIONS:Lkotlin/internal/PlatformImplementations; return-void .end method .method public static final apiVersionIsAtLeast(III)Z .registers 4 .line 114 sget-object v0, Lkotlin/KotlinVersion;->CURRENT:Lkotlin/KotlinVersion; invoke-virtual {v0, p0, p1, p2}, Lkotlin/KotlinVersion;->isAtLeast(III)Z move-result p0 return p0 .end method .method private static final synthetic castToBaseType(Ljava/lang/Object;)Ljava/lang/Object; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Object;", ")TT;" } .end annotation const-string v0, "T" const/4 v1, 0x1 .line 76 :try_start_3 invoke-static {v1, v0}, Lkotlin/jvm/internal/Intrinsics;->reifiedOperationMarker(ILjava/lang/String;)V move-object v1, p0 check-cast v1, Ljava/lang/Object; :try_end_9 .catch Ljava/lang/ClassCastException; {:try_start_3 .. :try_end_9} :catch_a return-object p0 :catch_a move-exception v1 .line 78 invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; move-result-object p0 invoke-virtual {p0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object p0 const/4 v2, 0x4 .line 79 invoke-static {v2, v0}, Lkotlin/jvm/internal/Intrinsics;->reifiedOperationMarker(ILjava/lang/String;)V const-class v0, Ljava/lang/Object; invoke-virtual {v0}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader; move-result-object v0 .line 80 new-instance v2, Ljava/lang/ClassCastException; new-instance v3, Ljava/lang/StringBuilder; const-string v4, "Instance classloader: " invoke-direct {v3, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 const-string v3, ", base type classloader: " invoke-virtual {p0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object p0 invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-direct {v2, p0}, Ljava/lang/ClassCastException;->(Ljava/lang/String;)V check-cast v1, Ljava/lang/Throwable; invoke-virtual {v2, v1}, Ljava/lang/ClassCastException;->initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable; move-result-object p0 const-string v0, "ClassCastException(\"Inst\u2026baseTypeCL\").initCause(e)" invoke-static {p0, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V throw p0 .end method .method private static final getJavaVersion()I .registers 12 .line 86 const-string v0, "java.specification.version" invoke-static {v0}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 const v1, 0x10006 if-eqz v0, :cond_66 .line 87 move-object v8, v0 check-cast v8, Ljava/lang/CharSequence; const/4 v6, 0x6 const/4 v7, 0x0 const/16 v3, 0x2e const/4 v4, 0x0 const/4 v5, 0x0 move-object v2, v8 invoke-static/range {v2 .. v7}, Lkotlin/text/StringsKt;->indexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I move-result v9 const/high16 v10, 0x10000 if-gez v9, :cond_24 .line 89 :try_start_1d invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v0 :try_end_21 .catch Ljava/lang/NumberFormatException; {:try_start_1d .. :try_end_21} :catch_23 mul-int v1, v0, v10 :catch_23 return v1 :cond_24 add-int/lit8 v11, v9, 0x1 const/4 v6, 0x4 const/4 v7, 0x0 const/16 v3, 0x2e const/4 v5, 0x0 move-object v2, v8 move v4, v11 .line 91 invoke-static/range {v2 .. v7}, Lkotlin/text/StringsKt;->indexOf$default(Ljava/lang/CharSequence;CIZILjava/lang/Object;)I move-result v2 if-gez v2, :cond_37 .line 92 invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v2 .line 94 :cond_37 const-string v3, "null cannot be cast to non-null type java.lang.String" if-eqz v0, :cond_60 const/4 v4, 0x0 invoke-virtual {v0, v4, v9}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v4 const-string v5, "(this as java.lang.Strin\u2026ing(startIndex, endIndex)" invoke-static {v4, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V if-eqz v0, :cond_5a .line 95 invoke-virtual {v0, v11, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 invoke-static {v0, v5}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullExpressionValue(Ljava/lang/Object;Ljava/lang/String;)V .line 97 :try_start_4e invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v2 mul-int/2addr v2, v10 invoke-static {v0}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v0 :try_end_57 .catch Ljava/lang/NumberFormatException; {:try_start_4e .. :try_end_57} :catch_59 add-int v1, v2, v0 :catch_59 return v1 .line 95 :cond_5a new-instance v0, Ljava/lang/NullPointerException; invoke-direct {v0, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v0 .line 94 :cond_60 new-instance v0, Ljava/lang/NullPointerException; invoke-direct {v0, v3}, Ljava/lang/NullPointerException;->(Ljava/lang/String;)V throw v0 :cond_66 return v1 .end method