Hi,
We use the AspectJ compiler to transform bytecode (both java and kotlin) for Android projects before it is turned into dex format bytecode. This has been working well however we have found a bug and I am
looking for guidance.
My main questions are
- Does anyone have a workaround?
- How can I get the bug triaged?
Thank you in advance.
Here is the bug I have logged:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=565713
Here is the explanation of the bug
AJ Compiler/Runtime Version: 1.9.6
Compiler Args (values omitted):
-aspectpath
-inpath
-target,
-source
-d
-log
-classpath
-bootclasspath
-verbose
-Xlint:ignore
During compile time weaving deeply nested anonymous inner classes cause the compiler to fail with this message:
Whilst processing type 'Lcom/test/MainActivity$configure$1$2$1$1;' - cannot cast the outer type to a reference type.
This issue is reproduced more easily in kotlin as kotlin is more functional and adds a lot of anonymous inner classes via their standard library higher order functions.
Here is the sample code that produces the issue (totally bogus, just shows the issue):
fun configure() {
findViewById<View>(R.id.FirstFragment)
// apply is a higher order function accepting a lambda/function (IE anonymous class)
.apply {
loader = object : LoaderWrapper() { }
// another apply
.apply {
doHide = { aEnum ->
doHide = {}
findViewById<View>(R.id.SecondFragment)
// another apply
.apply {
doHide = {
// another apply
it.apply {
}
}
}
}
}
}
}
Here is the decompiled java code:
// MainActivity.java
package com.test;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.util.HashMap;
import kotlin.Metadata;
import kotlin.jvm.functions.Function1;
import org.jetbrains.annotations.Nullable;
@Metadata(
mv = {1, 1, 16},
bv = {1, 0, 3},
k = 1,
d1 = {"\u0000 \n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u0006\u0010\u0005\u001a\u00020\u0006J\u0012\u0010\u0007\u001a\u00020\u00062\b\u0010\b\u001a\u0004\u0018\u00010\tH\u0014R\u0010\u0010\u0003\u001a\u0004\u0018\u00010\u0004X\u0082\u000e¢\u0006\u0002\n\u0000¨\u0006\n"},
d2 = {"Lcom/test/MainActivity;", "Landroidx/appcompat/app/AppCompatActivity;", "()V", "loader", "Lcom/test/Loader;", "configure", "", "onCreate", "savedInstanceState", "Landroid/os/Bundle;", "app"}
)
public final class MainActivity extends AppCompatActivity {
private Loader loader;
private HashMap _$_findViewCache;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(1300071);
this.setSupportActionBar((Toolbar)this.findViewById(1000191));
((FloatingActionButton)this.findViewById(1000144)).setOnClickListener((OnClickListener)null.INSTANCE);
this.configure();
}
public final void configure() {
View var1 = this.findViewById(1000003);
boolean var2 = false;
boolean var3 = false;
int var5 = false;
MainActivity$configure$1$1 var6 = new MainActivity$configure$1$1();
boolean var8 = false;
boolean var9 = false;
int var11 = false;
var6.setDoHide((Function1)(new MainActivity$$special$$inlined$apply$lambda$1(var6, var1)));
this.loader = (Loader)var6;
}
public View _$_findCachedViewById(int var1) {
if (this._$_findViewCache == null) {
this._$_findViewCache = new HashMap();
}
View var2 = (View)this._$_findViewCache.get(var1);
if (var2 == null) {
var2 = this.findViewById(var1);
this._$_findViewCache.put(var1, var2);
}
return var2;
}
public void _$_clearFindViewByIdCache() {
if (this._$_findViewCache != null) {
this._$_findViewCache.clear();
}
}
}
// MainActivity$configure$1$2$1$2$1.java
package com.test;
import com.test.Loader.AEnum;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.Lambda;
import org.jetbrains.annotations.NotNull;
@Metadata(
mv = {1, 1, 16},
bv = {1, 0, 3},
k = 3,
d1 = {"\u0000\u000e\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\n¢\u0006\u0002\b\u0004"},
d2 = {"<anonymous>", "", "it", "Lcom/test/Loader$AEnum;", "invoke"}
)
final class MainActivity$configure$1$2$1$2$1 extends Lambda implements Function1 {
public static final MainActivity$configure$1$2$1$2$1 INSTANCE = new MainActivity$configure$1$2$1$2$1();
// $FF: synthetic method
// $FF: bridge method
public Object invoke(Object var1) {
this.invoke((AEnum)var1);
return Unit.INSTANCE;
}
public final void invoke(@NotNull AEnum it) {
Intrinsics.checkParameterIsNotNull(it, "it");
boolean var3 = false;
boolean var4 = false;
boolean var6 = false;
}
MainActivity$configure$1$2$1$2$1() {
super(1);
}
}
// MainActivity$configure$1$1.java
package com.test;
import kotlin.Metadata;
@Metadata(
mv = {1, 1, 16},
bv = {1, 0, 3},
k = 1,
d1 = {"\u0000\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000*\u0001\u0000\b\n\u0018\u00002\u00020\u0001¨\u0006\u0002"},
d2 = {"com/test/MainActivity$configure$1$1", "Lcom/test/LoaderWrapper;", "app"}
)
public final class MainActivity$configure$1$1 extends LoaderWrapper {
MainActivity$configure$1$1() {
}
}
// MainActivity$$special$$inlined$apply$lambda$1.java
package com.test;
import android.view.View;
import com.test.Loader.AEnum;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.Lambda;
import org.jetbrains.annotations.NotNull;
@Metadata(
mv = {1, 1, 16},
bv = {1, 0, 3},
k = 3,
d1 = {"\u0000\u0010\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\n¢\u0006\u0002\b\u0004¨\u0006\u0005"},
d2 = {"<anonymous>", "", "aEnum", "Lcom/test/Loader$AEnum;", "invoke", "com/test/MainActivity$configure$1$2$1"}
)
final class MainActivity$$special$$inlined$apply$lambda$1 extends Lambda implements Function1 {
// $FF: synthetic field
final MainActivity$configure$1$1 $this_apply;
// $FF: synthetic field
final View $this_apply$inlined;
MainActivity$$special$$inlined$apply$lambda$1(MainActivity$configure$1$1 var1, View var2) {
super(1);
this.$this_apply = var1;
this.$this_apply$inlined = var2;
}
// $FF: synthetic method
// $FF: bridge method
public Object invoke(Object var1) {
this.invoke((AEnum)var1);
return Unit.INSTANCE;
}
public final void invoke(@NotNull AEnum aEnum) {
Intrinsics.checkParameterIsNotNull(aEnum, "aEnum");
this.$this_apply.setDoHide((Function1)null.INSTANCE);
View var2 = this.$this_apply$inlined.findViewById(1000018);
boolean var3 = false;
boolean var4 = false;
int var6 = false;
this.$this_apply.setDoHide((Function1)MainActivity$configure$1$2$1$2$1.INSTANCE);
}
}
Here is the bytecode:
// ================com/test/MainActivity.class =================
// class version 50.0 (50)
// access flags 0x31
public final class com/test/MainActivity extends androidx/appcompat/app/AppCompatActivity {
// access flags 0x2
private Lcom/test/Loader; loader
// access flags 0x4
protected onCreate(Landroid/os/Bundle;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
@Lorg/jetbrains/annotations/Nullable;() // invisible, parameter 0
L0
LINENUMBER 16 L0
ALOAD 0
ALOAD 1
INVOKESPECIAL androidx/appcompat/app/AppCompatActivity.onCreate (Landroid/os/Bundle;)V
L1
LINENUMBER 17 L1
ALOAD 0
LDC 1300071
INVOKEVIRTUAL com/test/MainActivity.setContentView (I)V
L2
LINENUMBER 18 L2
ALOAD 0
ALOAD 0
LDC 1000191
INVOKEVIRTUAL com/test/MainActivity.findViewById (I)Landroid/view/View;
CHECKCAST androidx/appcompat/widget/Toolbar
INVOKEVIRTUAL com/test/MainActivity.setSupportActionBar (Landroidx/appcompat/widget/Toolbar;)V
L3
LINENUMBER 20 L3
ALOAD 0
LDC 1000144
INVOKEVIRTUAL com/test/MainActivity.findViewById (I)Landroid/view/View;
CHECKCAST com/google/android/material/floatingactionbutton/FloatingActionButton
GETSTATIC com/test/MainActivity$onCreate$1.INSTANCE : Lcom/test/MainActivity$onCreate$1;
CHECKCAST android/view/View$OnClickListener
INVOKEVIRTUAL com/google/android/material/floatingactionbutton/FloatingActionButton.setOnClickListener (Landroid/view/View$OnClickListener;)V
L4
LINENUMBER 25 L4
ALOAD 0
INVOKEVIRTUAL com/test/MainActivity.configure ()V
L5
LINENUMBER 26 L5
RETURN
L6
LOCALVARIABLE this Lcom/test/MainActivity; L0 L6 0
LOCALVARIABLE savedInstanceState Landroid/os/Bundle; L0 L6 1
MAXSTACK = 3
MAXLOCALS = 2
// access flags 0x11
public final configure()V
L0
LINENUMBER 29 L0
L1
LINENUMBER 31 L1
L2
LINENUMBER 29 L2
ALOAD 0
LDC 1000003
INVOKEVIRTUAL com/test/MainActivity.findViewById (I)Landroid/view/View;
ASTORE 1
L3
LINENUMBER 31 L3
L4
ICONST_0
ISTORE 2
L5
ICONST_0
ISTORE 3
L6
ALOAD 1
ASTORE 4
L7
ICONST_0
ISTORE 5
L8
LINENUMBER 32 L8
L9
LINENUMBER 34 L9
ALOAD 0
L10
LINENUMBER 32 L10
NEW com/test/MainActivity$configure$1$1
DUP
INVOKESPECIAL com/test/MainActivity$configure$1$1.<init> ()V
ASTORE 6
L11
LINENUMBER 34 L11
ASTORE 7
L12
ICONST_0
ISTORE 8
L13
ICONST_0
ISTORE 9
L14
ALOAD 6
ASTORE 10
L15
ICONST_0
ISTORE 11
L16
LINENUMBER 35 L16
ALOAD 10
NEW com/test/MainActivity$$special$$inlined$apply$lambda$1
DUP
ALOAD 10
ALOAD 4
INVOKESPECIAL com/test/MainActivity$$special$$inlined$apply$lambda$1.<init> (Lcom/test/MainActivity$configure$1$1;Landroid/view/View;)V
CHECKCAST kotlin/jvm/functions/Function1
INVOKEVIRTUAL com/test/MainActivity$configure$1$1.setDoHide (Lkotlin/jvm/functions/Function1;)V
L17
LINENUMBER 48 L17
L18
NOP
L19
LINENUMBER 34 L19
L20
ALOAD 6
L21
ASTORE 12
ALOAD 7
ALOAD 12
CHECKCAST com/test/Loader
PUTFIELD com/test/MainActivity.loader : Lcom/test/Loader;
L22
LINENUMBER 49 L22
L23
NOP
L24
LINENUMBER 31 L24
L25
L26
NOP
L27
LINENUMBER 50 L27
RETURN
L28
LOCALVARIABLE $this$apply Lcom/test/MainActivity$configure$1$1; L15 L18 10
LOCALVARIABLE $i$a$-apply-MainActivity$configure$1$2 I L16 L18 11
LOCALVARIABLE $this$apply Landroid/view/View; L7 L23 4
LOCALVARIABLE $i$a$-apply-MainActivity$configure$1 I L8 L23 5
LOCALVARIABLE this Lcom/test/MainActivity; L0 L28 0
MAXSTACK = 5
MAXLOCALS = 13
// access flags 0x1
public <init>()V
L0
LINENUMBER 11 L0
ALOAD 0
L1
LINENUMBER 11 L1
INVOKESPECIAL androidx/appcompat/app/AppCompatActivity.<init> ()V
RETURN
L2
LOCALVARIABLE this Lcom/test/MainActivity; L0 L2 0
MAXSTACK = 1
MAXLOCALS = 1
// access flags 0x1
public _$_findCachedViewById(I)Landroid/view/View;
ALOAD 0
GETFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
IFNONNULL L0
ALOAD 0
NEW java/util/HashMap
DUP
INVOKESPECIAL java/util/HashMap.<init> ()V
PUTFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
L0
ALOAD 0
GETFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
ILOAD 1
INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer;
INVOKEVIRTUAL java/util/HashMap.get (Ljava/lang/Object;)Ljava/lang/Object;
CHECKCAST android/view/View
ASTORE 2
ALOAD 2
IFNONNULL L1
ALOAD 0
ILOAD 1
INVOKEVIRTUAL androidx/fragment/app/FragmentActivity.findViewById (I)Landroid/view/View;
ASTORE 2
ALOAD 0
GETFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
ILOAD 1
INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer;
ALOAD 2
INVOKEVIRTUAL java/util/HashMap.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
POP
L1
ALOAD 2
ARETURN
MAXSTACK = 3
MAXLOCALS = 3
// access flags 0x1
public _$_clearFindViewByIdCache()V
ALOAD 0
GETFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
IFNULL L0
ALOAD 0
GETFIELD com/test/MainActivity._$_findViewCache : Ljava/util/HashMap;
INVOKEVIRTUAL java/util/HashMap.clear ()V
L0
RETURN
MAXSTACK = 1
MAXLOCALS = 1
// access flags 0x2
private Ljava/util/HashMap; _$_findViewCache
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=1, d1={"\u0000 \n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0000\u0018\u00002\u00020\u0001B\u0005\u00a2\u0006\u0002\u0010\u0002J\u0006\u0010\u0005\u001a\u00020\u0006J\u0012\u0010\u0007\u001a\u00020\u00062\u0008\u0010\u0008\u001a\u0004\u0018\u00010\u0009H\u0014R\u0010\u0010\u0003\u001a\u0004\u0018\u00010\u0004X\u0082\u000e\u00a2\u0006\u0002\n\u0000\u00a8\u0006\n"},
d2={"Lcom/test/MainActivity;", "Landroidx/appcompat/app/AppCompatActivity;", "()V", "loader", "Lcom/test/Loader;", "configure", "", "onCreate", "savedInstanceState", "Landroid/os/Bundle;", "app"})
// access flags 0x18
final static INNERCLASS com/test/MainActivity$onCreate$1 null null
// compiled from: MainActivity.kt
// debug info: SMAP
MainActivity.kt
Kotlin
*S Kotlin
*F
+ 1 MainActivity.kt
com/test/MainActivity
*L
1#1,52:1
*E
}
// ================com/test/MainActivity$onCreate$1.class =================
// class version 50.0 (50)
// access flags 0x30
final class com/test/MainActivity$onCreate$1 implements android/view/View$OnClickListener {
// access flags 0x11
public final onClick(Landroid/view/View;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
L0
LINENUMBER 21 L0
L1
LINENUMBER 22 L1
L2
LINENUMBER 21 L2
L3
LINENUMBER 22 L3
L4
LINENUMBER 21 L4
ALOAD 1
LDC "Replace with your own action"
CHECKCAST java/lang/CharSequence
ICONST_0
INVOKESTATIC com/google/android/material/snackbar/Snackbar.make (Landroid/view/View;Ljava/lang/CharSequence;I)Lcom/google/android/material/snackbar/Snackbar;
L5
LINENUMBER 22 L5
LDC "Action"
CHECKCAST java/lang/CharSequence
ACONST_NULL
INVOKEVIRTUAL com/google/android/material/snackbar/Snackbar.setAction (Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)Lcom/google/android/material/snackbar/Snackbar;
INVOKEVIRTUAL com/google/android/material/snackbar/Snackbar.show ()V
L6
LINENUMBER 23 L6
RETURN
L7
LOCALVARIABLE this Lcom/test/MainActivity$onCreate$1; L0 L7 0
LOCALVARIABLE view Landroid/view/View; L0 L7 1
MAXSTACK = 3
MAXLOCALS = 2
// access flags 0x0
<init>()V
ALOAD 0
INVOKESPECIAL java/lang/Object.<init> ()V
RETURN
MAXSTACK = 1
MAXLOCALS = 1
// access flags 0x19
public final static Lcom/test/MainActivity$onCreate$1; INSTANCE
// access flags 0x8
static <clinit>()V
NEW com/test/MainActivity$onCreate$1
DUP
INVOKESPECIAL com/test/MainActivity$onCreate$1.<init> ()V
PUTSTATIC com/test/MainActivity$onCreate$1.INSTANCE : Lcom/test/MainActivity$onCreate$1;
RETURN
MAXSTACK = 2
MAXLOCALS = 0
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=3, d1={"\u0000\u0010\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\u0010\u0000\u001a\u00020\u00012\u000e\u0010\u0002\u001a\n
\u0004*\u0004\u0018\u00010\u00030\u0003H\n\u00a2\u0006\u0002\u0008\u0005"}, d2={"<anonymous>", "", "view", "Landroid/view/View;", "kotlin.jvm.PlatformType", "onClick"})
OUTERCLASS com/test/MainActivity onCreate (Landroid/os/Bundle;)V
// access flags 0x18
final static INNERCLASS com/test/MainActivity$onCreate$1 null null
// compiled from: MainActivity.kt
}
// ================com/test/MainActivity$configure$1$1.class =================
// class version 50.0 (50)
// access flags 0x31
public final class com/test/MainActivity$configure$1$1 extends com/test/LoaderWrapper {
OUTERCLASS com/test/MainActivity configure ()V
// access flags 0x0
<init>()V
L0
LINENUMBER 32 L0
ALOAD 0
L1
LINENUMBER 32 L1
INVOKESPECIAL com/test/LoaderWrapper.<init> ()V
RETURN
L2
LOCALVARIABLE this Lcom/test/MainActivity$configure$1$1; L0 L2 0
MAXSTACK = 1
MAXLOCALS = 1
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=1, d1={"\u0000\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000*\u0001\u0000\u0008\n\u0018\u00002\u00020\u0001\u00a8\u0006\u0002"}, d2={"com/test/MainActivity$configure$1$1",
"Lcom/test/LoaderWrapper;", "app"})
// access flags 0x19
public final static INNERCLASS com/test/MainActivity$configure$1$1 null null
// compiled from: MainActivity.kt
}
// ================com/test/MainActivity$configure$1$2$1$1.class =================
// class version 50.0 (50)
// access flags 0x30
// signature Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function1<Lcom/test/Loader$AEnum;Lkotlin/Unit;>;
// declaration: com/test/MainActivity$configure$1$2$1$1 extends kotlin.jvm.internal.Lambda implements kotlin.jvm.functions.Function1<com.test.Loader$AEnum, kotlin.Unit>
final class com/test/MainActivity$configure$1$2$1$1 extends kotlin/jvm/internal/Lambda implements kotlin/jvm/functions/Function1 {
// access flags 0x1041
public synthetic bridge invoke(Ljava/lang/Object;)Ljava/lang/Object;
L0
LINENUMBER 11 L0
ALOAD 0
ALOAD 1
CHECKCAST com/test/Loader$AEnum
INVOKEVIRTUAL com/test/MainActivity$configure$1$2$1$1.invoke (Lcom/test/Loader$AEnum;)V
GETSTATIC kotlin/Unit.INSTANCE : Lkotlin/Unit;
ARETURN
MAXSTACK = 2
MAXLOCALS = 2
// access flags 0x11
public final invoke(Lcom/test/Loader$AEnum;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
L0
ALOAD 1
LDC "it"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 36 L1
RETURN
L2
LOCALVARIABLE this Lcom/test/MainActivity$configure$1$2$1$1; L0 L2 0
LOCALVARIABLE it Lcom/test/Loader$AEnum; L0 L2 1
MAXSTACK = 2
MAXLOCALS = 2
// access flags 0x0
<init>()V
ALOAD 0
ICONST_1
INVOKESPECIAL kotlin/jvm/internal/Lambda.<init> (I)V
RETURN
MAXSTACK = 2
MAXLOCALS = 1
// access flags 0x19
public final static Lcom/test/MainActivity$configure$1$2$1$1; INSTANCE
// access flags 0x8
static <clinit>()V
NEW com/test/MainActivity$configure$1$2$1$1
DUP
INVOKESPECIAL com/test/MainActivity$configure$1$2$1$1.<init> ()V
PUTSTATIC com/test/MainActivity$configure$1$2$1$1.INSTANCE : Lcom/test/MainActivity$configure$1$2$1$1;
RETURN
MAXSTACK = 2
MAXLOCALS = 0
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=3, d1={"\u0000\u000e\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\n\u00a2\u0006\u0002\u0008\u0004"},
d2={"<anonymous>", "", "it", "Lcom/test/Loader$AEnum;", "invoke"})
OUTERCLASS com/test/MainActivity$configure$1$2$1 invoke (Lcom/test/Loader$AEnum;)V
// access flags 0x18
final static INNERCLASS com/test/MainActivity$configure$1$2$1$1 null null
// access flags 0x18
final static INNERCLASS com/test/MainActivity$configure$1$2$1 null null
// compiled from: MainActivity.kt
}
// ================com/test/MainActivity$configure$1$2$1$2$1.class =================
// class version 50.0 (50)
// access flags 0x30
// signature Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function1<Lcom/test/Loader$AEnum;Lkotlin/Unit;>;
// declaration: com/test/MainActivity$configure$1$2$1$2$1 extends kotlin.jvm.internal.Lambda implements kotlin.jvm.functions.Function1<com.test.Loader$AEnum, kotlin.Unit>
final class com/test/MainActivity$configure$1$2$1$2$1 extends kotlin/jvm/internal/Lambda implements kotlin/jvm/functions/Function1 {
// access flags 0x1041
public synthetic bridge invoke(Ljava/lang/Object;)Ljava/lang/Object;
L0
LINENUMBER 11 L0
ALOAD 0
ALOAD 1
CHECKCAST com/test/Loader$AEnum
INVOKEVIRTUAL com/test/MainActivity$configure$1$2$1$2$1.invoke (Lcom/test/Loader$AEnum;)V
GETSTATIC kotlin/Unit.INSTANCE : Lkotlin/Unit;
ARETURN
MAXSTACK = 2
MAXLOCALS = 2
// access flags 0x11
public final invoke(Lcom/test/Loader$AEnum;)V
// annotable parameter count: 1 (visible)
// annotable parameter count: 1 (invisible)
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
L0
ALOAD 1
LDC "it"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 42 L1
ALOAD 1
ASTORE 2
L2
ICONST_0
ISTORE 3
L3
ICONST_0
ISTORE 4
L4
ALOAD 2
ASTORE 5
L5
ICONST_0
ISTORE 6
L6
LINENUMBER 44 L6
NOP
L7
NOP
L8
LINENUMBER 42 L8
L9
L10
NOP
L11
LINENUMBER 45 L11
RETURN
L12
LOCALVARIABLE $this$apply Lcom/test/Loader$AEnum; L5 L7 5
LOCALVARIABLE $i$a$-apply-MainActivity$configure$1$2$1$2$1$1 I L6 L7 6
LOCALVARIABLE this Lcom/test/MainActivity$configure$1$2$1$2$1; L0 L12 0
LOCALVARIABLE it Lcom/test/Loader$AEnum; L0 L12 1
MAXSTACK = 2
MAXLOCALS = 7
// access flags 0x0
<init>()V
ALOAD 0
ICONST_1
INVOKESPECIAL kotlin/jvm/internal/Lambda.<init> (I)V
RETURN
MAXSTACK = 2
MAXLOCALS = 1
// access flags 0x19
public final static Lcom/test/MainActivity$configure$1$2$1$2$1; INSTANCE
// access flags 0x8
static <clinit>()V
NEW com/test/MainActivity$configure$1$2$1$2$1
DUP
INVOKESPECIAL com/test/MainActivity$configure$1$2$1$2$1.<init> ()V
PUTSTATIC com/test/MainActivity$configure$1$2$1$2$1.INSTANCE : Lcom/test/MainActivity$configure$1$2$1$2$1;
RETURN
MAXSTACK = 2
MAXLOCALS = 0
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=3, d1={"\u0000\u000e\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\n\u00a2\u0006\u0002\u0008\u0004"},
d2={"<anonymous>", "", "it", "Lcom/test/Loader$AEnum;", "invoke"})
OUTERCLASS com/test/MainActivity$configure$1$2$1 invoke (Lcom/test/Loader$AEnum;)V
// access flags 0x18
final static INNERCLASS com/test/MainActivity$configure$1$2$1$2$1 null null
// compiled from: MainActivity.kt
// debug info: SMAP
MainActivity.kt
Kotlin
*S Kotlin
*F
+ 1 MainActivity.kt
com/test/MainActivity$configure$1$2$1$2$1
*L
1#1,52:1
*E
}
// ================com/test/MainActivity$$special$$inlined$apply$lambda$1.class =================
// class version 50.0 (50)
// access flags 0x30
// signature Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function1<Lcom/test/Loader$AEnum;Lkotlin/Unit;>;
// declaration: com/test/MainActivity$$special$$inlined$apply$lambda$1 extends kotlin.jvm.internal.Lambda implements kotlin.jvm.functions.Function1<com.test.Loader$AEnum, kotlin.Unit>
final class com/test/MainActivity$$special$$inlined$apply$lambda$1 extends kotlin/jvm/internal/Lambda implements kotlin/jvm/functions/Function1 {
OUTERCLASS com/test/MainActivity configure ()V
// access flags 0x0
<init>(Lcom/test/MainActivity$configure$1$1;Landroid/view/View;)V
L0
ALOAD 0
ALOAD 1
PUTFIELD com/test/MainActivity$$special$$inlined$apply$lambda$1.$this_apply : Lcom/test/MainActivity$configure$1$1;
ALOAD 0
ALOAD 2
PUTFIELD com/test/MainActivity$$special$$inlined$apply$lambda$1.$this_apply$inlined : Landroid/view/View;
ALOAD 0
ICONST_1
INVOKESPECIAL kotlin/jvm/internal/Lambda.<init> (I)V
RETURN
L1
MAXSTACK = 2
MAXLOCALS = 3
// access flags 0x1010
final synthetic Lcom/test/MainActivity$configure$1$1; $this_apply
// access flags 0x1010
final synthetic Landroid/view/View; $this_apply$inlined
// access flags 0x1041
public synthetic bridge invoke(Ljava/lang/Object;)Ljava/lang/Object;
L0
LINENUMBER 11 L0
ALOAD 0
ALOAD 1
CHECKCAST com/test/Loader$AEnum
INVOKEVIRTUAL com/test/MainActivity$$special$$inlined$apply$lambda$1.invoke (Lcom/test/Loader$AEnum;)V
GETSTATIC kotlin/Unit.INSTANCE : Lkotlin/Unit;
ARETURN
L1
MAXSTACK = 2
MAXLOCALS = 2
// access flags 0x11
public final invoke(Lcom/test/Loader$AEnum;)V
@Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0
L0
ALOAD 1
LDC "aEnum"
INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V
L1
LINENUMBER 36 L1
ALOAD 0
GETFIELD com/test/MainActivity$$special$$inlined$apply$lambda$1.$this_apply : Lcom/test/MainActivity$configure$1$1;
GETSTATIC com/test/MainActivity$configure$1$2$1$1.INSTANCE : Lcom/test/MainActivity$configure$1$2$1$1;
CHECKCAST kotlin/jvm/functions/Function1
INVOKEVIRTUAL com/test/MainActivity$configure$1$1.setDoHide (Lkotlin/jvm/functions/Function1;)V
L2
LINENUMBER 37 L2
LINENUMBER 39 L2
LINENUMBER 37 L2
ALOAD 0
GETFIELD com/test/MainActivity$$special$$inlined$apply$lambda$1.$this_apply$inlined : Landroid/view/View;
LDC 1000018
INVOKEVIRTUAL android/view/View.findViewById (I)Landroid/view/View;
ASTORE 2
L3
LINENUMBER 39 L3
ICONST_0
ISTORE 3
ICONST_0
ISTORE 4
ALOAD 2
ASTORE 5
L4
ICONST_0
ISTORE 6
L5
LINENUMBER 40 L5
ALOAD 0
GETFIELD com/test/MainActivity$$special$$inlined$apply$lambda$1.$this_apply : Lcom/test/MainActivity$configure$1$1;
GETSTATIC com/test/MainActivity$configure$1$2$1$2$1.INSTANCE : Lcom/test/MainActivity$configure$1$2$1$2$1;
CHECKCAST kotlin/jvm/functions/Function1
INVOKEVIRTUAL com/test/MainActivity$configure$1$1.setDoHide (Lkotlin/jvm/functions/Function1;)V
L6
LINENUMBER 46 L6
NOP
L7
LINENUMBER 39 L7
NOP
L8
LINENUMBER 47 L8
RETURN
L9
LOCALVARIABLE $this$apply Landroid/view/View; L4 L6 5
LOCALVARIABLE $i$a$-apply-MainActivity$configure$1$2$1$2 I L5 L6 6
LOCALVARIABLE this Lcom/test/MainActivity$$special$$inlined$apply$lambda$1; L0 L9 0
LOCALVARIABLE aEnum Lcom/test/Loader$AEnum; L0 L9 1
MAXSTACK = 2
MAXLOCALS = 7
// access flags 0x18
final static INNERCLASS com/test/MainActivity$configure$1$2$1$1 null null
// access flags 0x18
final static INNERCLASS com/test/MainActivity$$special$$inlined$apply$lambda$1 null null
@Lkotlin/Metadata;(mv={1, 1, 16}, bv={1, 0, 3}, k=3, d1={"\u0000\u0010\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\u0010\u0000\u001a\u00020\u00012\u0006\u0010\u0002\u001a\u00020\u0003H\n\u00a2\u0006\u0002\u0008\u0004\u00a8\u0006\u0005"},
d2={"<anonymous>", "", "aEnum", "Lcom/test/Loader$AEnum;", "invoke", "com/test/MainActivity$configure$1$2$1"})
OUTERCLASS com/test/MainActivity configure ()V
// compiled from: MainActivity.kt
// debug info: SMAP
MainActivity.kt
Kotlin
*S Kotlin
*F
+ 1 MainActivity.kt
com/test/MainActivity$configure$1$2$1
*L
1#1,52:1
*E
}
// ================META-INF/app.kotlin_module =================