.class public LB27799205_3;
.super Ljava/lang/Object;

# A class with an unresolved array type should not fail hard (unless it's a primitive-type access).
# Make sure that merging is pro-active.

.method public static run()V
.registers 1
       return-void
.end method

# Use some non-object non-array input (non-Object because the merge should be Object).
.method public static test(Ljava/lang/Integer;[Ldo/not/resolve/K;Z)V
.registers 6
       # Make v0, v1 and v2 null. We'll use v0 as a merge of the inputs, v1 as null, and v2 as 0.
       const v0, 0
       const v1, 0
       const v2, 0

       # Conditional jump so we have a merge point.
       if-eqz v5, :LabelSelectUnresolved

:LabelSelectResolved
       move-object v0, v3
       goto :LabelMerged

:LabelSelectUnresolved
       move-object v0, v4
       goto :LabelMerged

:LabelMerged
       # At this point, v0 should be Object.

       # Test aput-object: v0[v2] = v1. Should fail for v0 not being an array.
       aput-object v1, v0, v2

       return-void

.end method