Revert "Merge remote-tracking branch 'aosp/upstream-master' into desugar" am: 67e182a0a1 am: d9074776c9
am: 4552d61047

Change-Id: I91c44faaf7898507b15835b32b7860fb448671c2
diff --git a/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java b/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
index 783069f..777a4ab 100644
--- a/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
+++ b/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
@@ -14,14 +14,12 @@
 package com.google.devtools.build.android.desugar;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Preconditions.checkState;
 
 import com.google.auto.value.AutoValue;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayList;
-import java.util.Optional;
-import javax.annotation.Nullable;
+import java.util.HashMap;
 import org.objectweb.asm.Handle;
 import org.objectweb.asm.Label;
 import org.objectweb.asm.MethodVisitor;
@@ -43,6 +41,11 @@
   private FrameInfo previousFrame;
   /** For debugging purpose. */
   private final String methodSignature;
+  /**
+   * Stores mapping from "uninitialized" value to concrete value. This is for the "new" instruction.
+   */
+  private final HashMap<InferredType, InferredType> uninitializedToConcreteTypeMap =
+      new HashMap<>();
 
   public BytecodeTypeInference(int access, String owner, String name, String methodDescriptor) {
     super(Opcodes.ASM6);
@@ -78,10 +81,6 @@
     return operandStack.toString();
   }
 
-  public String getLocalsAsString() {
-    return localVariableSlots.toString();
-  }
-
   @Override
   public void visitInsn(int opcode) {
     switch (opcode) {
@@ -477,7 +476,8 @@
       int argumentSize = (Type.getArgumentsAndReturnSizes(desc) >> 2);
       InferredType receiverType = getTypeOfOperandFromTop(argumentSize - 1);
       if (receiverType.isUninitialized()) {
-        InferredType realType = InferredType.createNonUninitializedType('L' + owner + ';');
+        InferredType realType = InferredType.create('L' + owner + ';');
+        uninitializedToConcreteTypeMap.put(receiverType, realType);
         replaceUninitializedTypeInStack(receiverType, realType);
       }
     }
@@ -642,6 +642,7 @@
     operandStack.addAll(previousFrame.stack());
     localVariableSlots.clear();
     localVariableSlots.addAll(previousFrame.locals());
+
     super.visitFrame(type, nLocal, local, nStack, stack);
   }
 
@@ -671,7 +672,7 @@
     checkArgument(oldType.isUninitialized(), "The old type is NOT uninitialized. %s", oldType);
     for (int i = 0, size = operandStack.size(); i < size; ++i) {
       InferredType type = operandStack.get(i);
-      if (type.equals(oldType)) {
+      if (type == oldType) {
         operandStack.set(i, newType);
       }
     }
@@ -702,7 +703,7 @@
         break;
       case 'L':
       case '[':
-        push(InferredType.createNonUninitializedType(desc.substring(index)));
+        push(InferredType.create(desc.substring(index)));
         break;
       default:
         throw new RuntimeException("Unhandled type: " + desc);
@@ -770,6 +771,12 @@
     return lastPopped;
   }
 
+  private static ImmutableList<InferredType> removeBackFromList(
+      ImmutableList<InferredType> list, int countToRemove) {
+    int newSize = list.size() - countToRemove;
+    return list.subList(0, newSize);
+  }
+
   /**
    * Create the types of local variables at the very beginning of the method with the information of
    * the declaring class and the method descriptor.
@@ -780,7 +787,7 @@
 
     if (!BitFlags.isSet(access, Opcodes.ACC_STATIC)) {
       // Instance method, and this is the receiver
-      types.add(InferredType.createNonUninitializedType(convertToDescriptor(ownerClass)));
+      types.add(InferredType.create(convertToDescriptor(ownerClass)));
     }
     Type[] argumentTypes = Type.getArgumentTypes(methodDescriptor);
     for (Type argumentType : argumentTypes) {
@@ -805,7 +812,7 @@
           break;
         case Type.ARRAY:
         case Type.OBJECT:
-          types.add(InferredType.createNonUninitializedType(argumentType.getDescriptor()));
+          types.add(InferredType.create(argumentType.getDescriptor()));
           break;
         default:
           throw new RuntimeException(
@@ -821,28 +828,6 @@
     return types;
   }
 
-  private static ImmutableList<InferredType> removeBackFromList(
-      ImmutableList<InferredType> list, int countToRemove) {
-    int origSize = list.size();
-    int index = origSize - 1;
-
-    while (index >= 0 && countToRemove > 0) {
-      InferredType type = list.get(index);
-      if (type.equals(InferredType.TOP) && index > 0 && list.get(index - 1).isCategory2()) {
-        --index; // A category 2 takes two slots.
-      }
-      --index; // Eat this local variable.
-      --countToRemove;
-    }
-    checkState(
-        countToRemove == 0,
-        "countToRemove is %s but not 0. index=%s, list=%s",
-        countToRemove,
-        index,
-        list);
-    return list.subList(0, index + 1);
-  }
-
   private ImmutableList<InferredType> appendArrayToList(
       ImmutableList<InferredType> list, int size, Object[] array) {
     ImmutableList.Builder<InferredType> builder = ImmutableList.builder();
@@ -876,13 +861,13 @@
     } else if (typeInStackMapFrame instanceof String) {
       String referenceTypeName = (String) typeInStackMapFrame;
       if (referenceTypeName.charAt(0) == '[') {
-        return InferredType.createNonUninitializedType(referenceTypeName);
+        return InferredType.create(referenceTypeName);
       } else {
-        return InferredType.createNonUninitializedType('L' + referenceTypeName + ';');
+        return InferredType.create('L' + referenceTypeName + ';');
       }
     } else if (typeInStackMapFrame instanceof Label) {
       Label label = (Label) typeInStackMapFrame;
-      return InferredType.createUninitializedType(label);
+      return InferredType.createUninitialized(label.getOffset());
     } else {
       throw new RuntimeException(
           "Cannot reach here. Unhandled element: value="
@@ -926,45 +911,26 @@
     public static final String UNINITIALIZED_PREFIX = "UNINIT@";
 
     public static final InferredType BOOLEAN =
-        new AutoValue_BytecodeTypeInference_InferredType("Z", /*uninitializationLabel=*/ null);
-    public static final InferredType BYTE =
-        new AutoValue_BytecodeTypeInference_InferredType("B", /*uninitializationLabel=*/ null);
-    public static final InferredType INT =
-        new AutoValue_BytecodeTypeInference_InferredType("I", /*uninitializationLabel=*/ null);
-    public static final InferredType FLOAT =
-        new AutoValue_BytecodeTypeInference_InferredType("F", /*uninitializationLabel=*/ null);
-    public static final InferredType LONG =
-        new AutoValue_BytecodeTypeInference_InferredType("J", /*uninitializationLabel=*/ null);
-    public static final InferredType DOUBLE =
-        new AutoValue_BytecodeTypeInference_InferredType("D", /*uninitializationLabel=*/ null);
+        new AutoValue_BytecodeTypeInference_InferredType("Z");
+    public static final InferredType BYTE = new AutoValue_BytecodeTypeInference_InferredType("B");
+    public static final InferredType INT = new AutoValue_BytecodeTypeInference_InferredType("I");
+    public static final InferredType FLOAT = new AutoValue_BytecodeTypeInference_InferredType("F");
+    public static final InferredType LONG = new AutoValue_BytecodeTypeInference_InferredType("J");
+    public static final InferredType DOUBLE = new AutoValue_BytecodeTypeInference_InferredType("D");
     /** Not a real value. */
-    public static final InferredType TOP =
-        new AutoValue_BytecodeTypeInference_InferredType("TOP", /*uninitializationLabel=*/ null);
+    public static final InferredType TOP = new AutoValue_BytecodeTypeInference_InferredType("TOP");
     /** The value NULL */
     public static final InferredType NULL =
-        new AutoValue_BytecodeTypeInference_InferredType("NULL", /*uninitializationLabel=*/ null);
+        new AutoValue_BytecodeTypeInference_InferredType("NULL");
 
     public static final InferredType UNINITIALIZED_THIS =
-        new AutoValue_BytecodeTypeInference_InferredType(
-            "UNINITIALIZED_THIS", /*uninitializationLabel=*/ null);
+        new AutoValue_BytecodeTypeInference_InferredType("UNINITIALIZED_THIS");
 
-    /**
-     * Create a type for a value. This method is not intended to be called outside of this class.
-     */
-    private static InferredType create(String descriptor, @Nullable Label uninitializationLabel) {
-      if (UNINITIALIZED_PREFIX.equals(descriptor)) {
-        return new AutoValue_BytecodeTypeInference_InferredType(
-            UNINITIALIZED_PREFIX, checkNotNull(uninitializationLabel));
-      }
-      checkArgument(
-          uninitializationLabel == null,
-          "The uninitializationLabel should be null for non-uninitialized value. %s",
-          descriptor);
+    static InferredType create(String descriptor) {
       char firstChar = descriptor.charAt(0);
-      if (firstChar == 'L' || firstChar == '[') {
-        // Reference, array.
-        return new AutoValue_BytecodeTypeInference_InferredType(
-            descriptor, /*uninitializationLabel=*/ null);
+      if (firstChar == 'L' || firstChar == '[' || descriptor.startsWith(UNINITIALIZED_PREFIX)) {
+        // Reference, array, or uninitialized values.
+        return new AutoValue_BytecodeTypeInference_InferredType(descriptor);
       }
       switch (descriptor) {
         case "Z":
@@ -990,23 +956,12 @@
       }
     }
 
-    /** Creates all types except UNINITIALIZED. This method can also create UNINTIALIZED_THIS. */
-    static InferredType createNonUninitializedType(String descriptor) {
-      return create(descriptor, /*uninitializationLabel=*/ null);
-    }
-
-    /** Create a type for an UNINITIALIZED value. The uninitializationLabel is generated by ASM. */
-    static InferredType createUninitializedType(Label uninitializationLabel) {
-      return create(UNINITIALIZED_PREFIX, uninitializationLabel);
+    /** Create a type for uninitialized value. The label is generated by ASM. */
+    static InferredType createUninitialized(int label) {
+      return create(UNINITIALIZED_PREFIX + label);
     }
 
     abstract String descriptor();
-    /**
-     * The label may be null. This field is meaningful if the current type is "UNINITIALIZED". For
-     * other types, this field is null.
-     */
-    @Nullable
-    abstract Label uninitializationLabel();
 
     @Override
     public String toString() {
@@ -1023,7 +978,7 @@
     public InferredType getElementTypeIfArrayOrThrow() {
       String descriptor = descriptor();
       checkState(descriptor.charAt(0) == '[', "This type %s is not an array.", this);
-      return createNonUninitializedType(descriptor.substring(1));
+      return create(descriptor.substring(1));
     }
 
     /** Is an uninitialized value? */
@@ -1037,16 +992,17 @@
     }
 
     /**
-     * If this type is a reference type, then return the internal name. Otherwise, returns empty.
+     * If this type is a reference type, then return the internal name. Otherwise, throw an
+     * exception.
      */
-    public Optional<String> getInternalName() {
+    public String getInternalNameOrThrow() {
       String descriptor = descriptor();
       int length = descriptor.length();
-      if (length > 0 && descriptor.charAt(0) == 'L' && descriptor.charAt(length - 1) == ';') {
-        return Optional.of(descriptor.substring(1, length - 1));
-      } else {
-        return Optional.empty();
-      }
+      checkState(
+          descriptor.charAt(0) == 'L' && descriptor.charAt(length - 1) == ';',
+          "The type is expected to be either a class or an interface: %s",
+          descriptor);
+      return descriptor.substring(1, length - 1);
     }
   }
 }
diff --git a/java/com/google/devtools/build/android/desugar/LambdaClassMaker.java b/java/com/google/devtools/build/android/desugar/LambdaClassMaker.java
index 1f240ef..beaeb03 100644
--- a/java/com/google/devtools/build/android/desugar/LambdaClassMaker.java
+++ b/java/com/google/devtools/build/android/desugar/LambdaClassMaker.java
@@ -14,19 +14,18 @@
 package com.google.devtools.build.android.desugar;
 
 import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.collect.Iterables.getOnlyElement;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Iterators;
 import java.io.IOException;
 import java.lang.invoke.MethodHandle;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
-import java.util.Set;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
 
 class LambdaClassMaker {
 
@@ -34,7 +33,6 @@
 
   private final Path rootDirectory;
   private final Map<Path, LambdaInfo> generatedClasses = new LinkedHashMap<>();
-  private final Set<Path> existingPaths = new HashSet<>();
 
   public LambdaClassMaker(Path rootDirectory) {
     checkArgument(
@@ -44,9 +42,7 @@
 
   public void generateLambdaClass(String invokerInternalName, LambdaInfo lambdaInfo,
       MethodHandle bootstrapMethod, ArrayList<Object> bsmArgs) throws IOException {
-    // Invoking the bootstrap method will dump the generated class.  Ignore any pre-existing
-    // matching files, which can come from desugar's implementation using classes being desugared.
-    existingPaths.addAll(findUnprocessed(invokerInternalName + "$$Lambda$"));
+    // Invoking the bootstrap method will dump the generated class
     try {
       bootstrapMethod.invokeWithArguments(bsmArgs);
     } catch (Throwable e) {
@@ -54,9 +50,8 @@
           + invokerInternalName + " using " + bootstrapMethod + " with arguments " + bsmArgs, e);
     }
 
-    Path generatedClassFile = getOnlyElement(findUnprocessed(invokerInternalName + "$$Lambda$"));
+    Path generatedClassFile = findOnlyUnprocessed(invokerInternalName + "$$Lambda$");
     generatedClasses.put(generatedClassFile, lambdaInfo);
-    existingPaths.add(generatedClassFile);
   }
 
   /**
@@ -69,7 +64,7 @@
     return result;
   }
 
-  private ImmutableList<Path> findUnprocessed(String pathPrefix) throws IOException {
+  private Path findOnlyUnprocessed(String pathPrefix) throws IOException {
     // pathPrefix is an internal class name prefix containing '/', but paths obtained on Windows
     // will not contain '/' and searches will fail.  So, construct an absolute path from the given
     // string and use its string representation to find the file we need regardless of host
@@ -77,14 +72,18 @@
     Path rootPathPrefix = rootDirectory.resolve(pathPrefix);
     final String rootPathPrefixStr = rootPathPrefix.toString();
 
-    if (!Files.exists(rootPathPrefix.getParent())) {
-      return ImmutableList.of();
+    // TODO(bazel-team): This could be much nicer with lambdas
+    try (Stream<Path> paths =
+        Files.list(rootPathPrefix.getParent())
+            .filter(
+                new Predicate<Path>() {
+                  @Override
+                  public boolean test(Path path) {
+                    return path.toString().startsWith(rootPathPrefixStr)
+                        && !generatedClasses.containsKey(path);
+                  }
+                })) {
+      return Iterators.getOnlyElement(paths.iterator());
     }
-    return Files.list(rootPathPrefix.getParent())
-        .filter(
-            path ->
-                path.toString().startsWith(rootPathPrefixStr)
-                    && !existingPaths.contains(path))
-        .collect(ImmutableList.toImmutableList());
   }
 }
diff --git a/java/com/google/devtools/build/android/desugar/TryWithResourcesRewriter.java b/java/com/google/devtools/build/android/desugar/TryWithResourcesRewriter.java
index 8e6d6d5..e4d4da5 100644
--- a/java/com/google/devtools/build/android/desugar/TryWithResourcesRewriter.java
+++ b/java/com/google/devtools/build/android/desugar/TryWithResourcesRewriter.java
@@ -31,7 +31,6 @@
 import com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType;
 import java.util.Collections;
 import java.util.LinkedHashSet;
-import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import javax.annotation.Nullable;
@@ -292,16 +291,10 @@
           // Check the exception type.
           InferredType exceptionClass = typeInference.getTypeOfOperandFromTop(1);
           if (!exceptionClass.isNull()) {
-            Optional<String> exceptionClassInternalName = exceptionClass.getInternalName();
-            checkState(
-                exceptionClassInternalName.isPresent(),
-                "The exception %s is not a reference type in %s.%s",
-                exceptionClass,
-                internalName,
-                methodSignature);
+            String exceptionClassInternalName = exceptionClass.getInternalNameOrThrow();
             checkState(
                 isAssignableFrom(
-                    "java.lang.Throwable", exceptionClassInternalName.get().replace('/', '.')),
+                    "java.lang.Throwable", exceptionClassInternalName.replace('/', '.')),
                 "The exception type %s in %s.%s should be a subclass of java.lang.Throwable.",
                 exceptionClassInternalName,
                 internalName,
@@ -309,26 +302,20 @@
           }
         }
 
-        InferredType resourceType = typeInference.getTypeOfOperandFromTop(0);
-        Optional<String> resourceClassInternalName = resourceType.getInternalName();
-        checkState(
-            resourceClassInternalName.isPresent(),
-            "The resource class %s is not a reference type in %s.%s",
-            resourceType,
-            internalName,
-            methodSignature);
+        String resourceClassInternalName =
+            typeInference.getTypeOfOperandFromTop(0).getInternalNameOrThrow();
         checkState(
             isAssignableFrom(
-                "java.lang.AutoCloseable", resourceClassInternalName.get().replace('/', '.')),
+                "java.lang.AutoCloseable", resourceClassInternalName.replace('/', '.')),
             "The resource type should be a subclass of java.lang.AutoCloseable: %s",
             resourceClassInternalName);
 
-        resourceTypeInternalNames.add(resourceClassInternalName.get());
+        resourceTypeInternalNames.add(resourceClassInternalName);
         super.visitMethodInsn(
             opcode,
             owner,
             "$closeResource",
-            "(Ljava/lang/Throwable;L" + resourceClassInternalName.get() + ";)V",
+            "(Ljava/lang/Throwable;L" + resourceClassInternalName + ";)V",
             itf);
         return;
       }
diff --git a/test/java/com/google/devtools/build/android/desugar/ByteCodeTypePrinter.java b/test/java/com/google/devtools/build/android/desugar/ByteCodeTypePrinter.java
index d58d002..fefc599 100644
--- a/test/java/com/google/devtools/build/android/desugar/ByteCodeTypePrinter.java
+++ b/test/java/com/google/devtools/build/android/desugar/ByteCodeTypePrinter.java
@@ -20,7 +20,6 @@
 import java.io.PrintWriter;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.Comparator;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import org.objectweb.asm.ClassReader;
@@ -54,7 +53,7 @@
   private static ImmutableList<ZipEntry> getSortedClassEntriess(ZipFile jar) {
     return jar.stream()
         .filter(entry -> entry.getName().endsWith(".class"))
-        .sorted(Comparator.comparing(ZipEntry::getName))
+        .sorted()
         .collect(ImmutableList.toImmutableList());
   }
 
@@ -117,106 +116,105 @@
       this.printWriter = printWriter;
     }
 
-    private void printTypeOfOperandStack() {
+    private void printTypeOfOperandStackTop() {
       printer.print("    |__STACK: " + inference.getOperandStackAsString() + "\n");
-      printer.print("    |__LOCAL: " + inference.getLocalsAsString() + "\n");
     }
 
     @Override
     public void visitIntInsn(int opcode, int operand) {
       printer.visitIntInsn(opcode, operand);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitIntInsn(opcode, operand);
     }
 
     @Override
     public void visitInsn(int opcode) {
       printer.visitInsn(opcode);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitInsn(opcode);
     }
 
     @Override
     public void visitMultiANewArrayInsn(String desc, int dims) {
       printer.visitMultiANewArrayInsn(desc, dims);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitMultiANewArrayInsn(desc, dims);
     }
 
     @Override
     public void visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) {
       printer.visitLookupSwitchInsn(dflt, keys, labels);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitLookupSwitchInsn(dflt, keys, labels);
     }
 
     @Override
     public void visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) {
       printer.visitTableSwitchInsn(min, max, dflt, labels);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitTableSwitchInsn(min, max, dflt, labels);
     }
 
     @Override
     public void visitIincInsn(int var, int increment) {
       printer.visitIincInsn(var, increment);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitIincInsn(var, increment);
     }
 
     @Override
     public void visitLdcInsn(Object cst) {
       printer.visitLdcInsn(cst);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitLdcInsn(cst);
     }
 
     @Override
     public void visitJumpInsn(int opcode, Label label) {
       printer.visitJumpInsn(opcode, label);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitJumpInsn(opcode, label);
     }
 
     @Override
     public void visitInvokeDynamicInsn(String name, String desc, Handle bsm, Object... bsmArgs) {
       printer.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitInvokeDynamicInsn(name, desc, bsm, bsmArgs);
     }
 
     @Override
     public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
       printer.visitMethodInsn(opcode, owner, name, desc, itf);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitMethodInsn(opcode, owner, name, desc, itf);
     }
 
     @Override
     public void visitMethodInsn(int opcode, String owner, String name, String desc) {
       printer.visitMethodInsn(opcode, owner, name, desc);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitMethodInsn(opcode, owner, name, desc);
     }
 
     @Override
     public void visitFieldInsn(int opcode, String owner, String name, String desc) {
       printer.visitFieldInsn(opcode, owner, name, desc);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitFieldInsn(opcode, owner, name, desc);
     }
 
     @Override
     public void visitTypeInsn(int opcode, String type) {
       printer.visitTypeInsn(opcode, type);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitTypeInsn(opcode, type);
     }
 
     @Override
     public void visitVarInsn(int opcode, int var) {
       printer.visitVarInsn(opcode, var);
-      printTypeOfOperandStack();
+      printTypeOfOperandStackTop();
       super.visitVarInsn(opcode, var);
     }
 
diff --git a/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt b/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt
index dabfe14..722c2ad 100644
--- a/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt
+++ b/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.golden.txt
@@ -3,1793 +3,1168 @@
    L0
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;]
     INVOKESPECIAL java/lang/Object.<init> ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;]
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;]
 Method catchTest
    L0
     ALOAD 0
         |__STACK: [Ljava/lang/Object;]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     INSTANCEOF java/lang/String
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     IFNE L1
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
    L2
     GETSTATIC testsubjects/TestSubject.VALUE_ONE : I
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     IRETURN
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
    L1
    FRAME SAME
     ALOAD 0
         |__STACK: [Ljava/lang/Object;]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     CHECKCAST java/lang/String
         |__STACK: [Ljava/lang/String;]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     INVOKESTATIC java/util/regex/Pattern.compile (Ljava/lang/String;)Ljava/util/regex/Pattern;
         |__STACK: [Ljava/util/regex/Pattern;]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     POP
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
    L3
     GOTO L4
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
    L5
    FRAME SAME1 java/util/regex/PatternSyntaxException
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;, Ljava/util/regex/PatternSyntaxException;]
    L6
     GETSTATIC testsubjects/TestSubject.VALUE_TWO : I
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;, Ljava/util/regex/PatternSyntaxException;]
     IRETURN
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;, Ljava/util/regex/PatternSyntaxException;]
    L4
    FRAME SAME
     GETSTATIC testsubjects/TestSubject.VALUE_ONE : I
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
     IRETURN
         |__STACK: []
-        |__LOCAL: [Ljava/lang/Object;, Ljava/lang/Object;]
 Method assertEquals
    L0
     DLOAD 1
         |__STACK: [D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DLOAD 3
         |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESTATIC java/lang/Double.compare (DD)I
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     IFNE L1
         |__STACK: []
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
    L2
     RETURN
         |__STACK: []
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
    L1
    FRAME SAME
     DLOAD 1
         |__STACK: [D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DLOAD 3
         |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DSUB
         |__STACK: [D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESTATIC java/lang/Math.abs (D)D
         |__STACK: [D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DLOAD 5
         |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DCMPG
         |__STACK: [I]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     IFLE L3
         |__STACK: []
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
    L4
     NEW java/lang/RuntimeException
         |__STACK: [Ljava/lang/RuntimeException;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DUP
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     NEW java/lang/StringBuilder
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DUP
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESPECIAL java/lang/StringBuilder.<init> ()V
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     ALOAD 0
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/String;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     NEW java/lang/Double
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DUP
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DLOAD 1
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;, Ljava/lang/Double;, D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESPECIAL java/lang/Double.<init> (D)V
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     NEW java/lang/Double
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DUP
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     DLOAD 3
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;, Ljava/lang/Double;, D, TOP]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESPECIAL java/lang/Double.<init> (D)V
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;, Ljava/lang/Double;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/StringBuilder;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String;
         |__STACK: [Ljava/lang/RuntimeException;, Ljava/lang/RuntimeException;, Ljava/lang/String;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     INVOKESPECIAL java/lang/RuntimeException.<init> (Ljava/lang/String;)V
         |__STACK: [Ljava/lang/RuntimeException;]
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
    L3
    FRAME SAME
     RETURN
         |__STACK: []
-        |__LOCAL: [Ljava/lang/String;, D, TOP, D, TOP, D, TOP]
 Method simpleTryWithResources
    L0
     NEW testsubjects/TestSubject$SimpleResource
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: []
     DUP
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;, Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: []
     INVOKESPECIAL testsubjects/TestSubject$SimpleResource.<init> ()V
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: []
     ASTORE 0
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;]
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;]
     ASTORE 1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
    L1
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     ICONST_1
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;, I]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     INVOKEVIRTUAL testsubjects/TestSubject$SimpleResource.call (Z)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
    L2
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     IFNULL L3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     ALOAD 1
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     IFNULL L4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
    L5
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
     INVOKEVIRTUAL testsubjects/TestSubject$SimpleResource.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
    L6
     GOTO L3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, NULL]
    L7
    FRAME FULL [testsubjects/TestSubject$SimpleResource java/lang/Throwable] [java/lang/Throwable]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 1
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 2
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L4
    FRAME SAME
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL testsubjects/TestSubject$SimpleResource.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;]
     GOTO L3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;]
    L8
    FRAME SAME1 java/lang/Throwable
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 2
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ASTORE 1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 2
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L9
    FRAME SAME1 java/lang/Throwable
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L10
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     IFNULL L11
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     ALOAD 1
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     IFNULL L12
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L13
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     INVOKEVIRTUAL testsubjects/TestSubject$SimpleResource.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L14
     GOTO L11
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L15
    FRAME FULL [testsubjects/TestSubject$SimpleResource java/lang/Throwable T java/lang/Throwable] [java/lang/Throwable]
     ASTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 1
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 4
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L11
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L12
    FRAME SAME
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject$SimpleResource;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     INVOKEVIRTUAL testsubjects/TestSubject$SimpleResource.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L11
    FRAME SAME
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject$SimpleResource;, Ljava/lang/Throwable;, TOP, Ljava/lang/Throwable;]
    L3
    FRAME FULL [] []
     RETURN
         |__STACK: []
-        |__LOCAL: []
 Method internalCompare
    L0
     ALOAD 4
         |__STACK: [Ljava/util/function/BinaryOperator;]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     LLOAD 0
         |__STACK: [Ljava/util/function/BinaryOperator;, J, TOP]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long;
         |__STACK: [Ljava/util/function/BinaryOperator;, Ljava/lang/Long;]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     LLOAD 2
         |__STACK: [Ljava/util/function/BinaryOperator;, Ljava/lang/Long;, J, TOP]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     INVOKESTATIC java/lang/Long.valueOf (J)Ljava/lang/Long;
         |__STACK: [Ljava/util/function/BinaryOperator;, Ljava/lang/Long;, Ljava/lang/Long;]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     INVOKEINTERFACE java/util/function/BinaryOperator.apply (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
         |__STACK: [Ljava/lang/Object;]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     CHECKCAST java/lang/Long
         |__STACK: [Ljava/lang/Long;]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     INVOKEVIRTUAL java/lang/Long.longValue ()J
         |__STACK: [J, TOP]
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
     LRETURN
         |__STACK: []
-        |__LOCAL: [J, TOP, J, TOP, Ljava/util/function/BinaryOperator;]
 Method closeResourceArray
    L0
     ALOAD 1
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ALOAD 2
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ARRAYLENGTH
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ISTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I]
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I]
     ISTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
    L1
    FRAME APPEND [[Ljava/sql/Statement; I I]
     ILOAD 4
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ILOAD 3
         |__STACK: [I, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     IF_ICMPGE L2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ALOAD 2
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ILOAD 4
         |__STACK: [[Ljava/sql/Statement;, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     AALOAD
         |__STACK: [Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ASTORE 5
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L3
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     ALOAD 5
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     ACONST_NULL
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;, NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     INVOKEVIRTUAL testsubjects/TestSubject.closeResource (Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L4
     IINC 4 1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     GOTO L1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L2
    FRAME CHOP 3
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [Ljava/sql/Statement;]
 Method closeResourceMultiArray
    L0
     ALOAD 1
         |__STACK: [[[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;]
     ALOAD 2
         |__STACK: [[[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;]
     ARRAYLENGTH
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;]
     ISTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I]
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I]
     ISTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
    L1
    FRAME APPEND [[[Ljava/sql/Statement; I I]
     ILOAD 4
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     ILOAD 3
         |__STACK: [I, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     IF_ICMPGE L2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     ALOAD 2
         |__STACK: [[[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     ILOAD 4
         |__STACK: [[[Ljava/sql/Statement;, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     AALOAD
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     ASTORE 5
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;]
    L3
     ALOAD 5
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;]
     ASTORE 6
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ALOAD 6
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ARRAYLENGTH
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;]
     ISTORE 7
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I]
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I]
     ISTORE 8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
    L4
    FRAME FULL [testsubjects/TestSubject [[Ljava/sql/Statement; [[Ljava/sql/Statement; I I [Ljava/sql/Statement; [Ljava/sql/Statement; I I] []
     ILOAD 8
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ILOAD 7
         |__STACK: [I, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     IF_ICMPGE L5
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ALOAD 6
         |__STACK: [[Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ILOAD 8
         |__STACK: [[Ljava/sql/Statement;, I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     AALOAD
         |__STACK: [Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I]
     ASTORE 9
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L6
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     ALOAD 9
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     ACONST_NULL
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;, NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     INVOKEVIRTUAL testsubjects/TestSubject.closeResource (Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L7
     IINC 8 1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
     GOTO L4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I, [Ljava/sql/Statement;, [Ljava/sql/Statement;, I, I, Ljava/sql/Statement;]
    L5
    FRAME FULL [testsubjects/TestSubject [[Ljava/sql/Statement; [[Ljava/sql/Statement; I I] []
     IINC 4 1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
     GOTO L1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;, [[Ljava/sql/Statement;, I, I]
    L2
    FRAME CHOP 3
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, [[Ljava/sql/Statement;]
 Method closeResourceArrayList
    L0
     ALOAD 1
         |__STACK: [Ljava/util/List;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;]
     INVOKEINTERFACE java/util/List.iterator ()Ljava/util/Iterator;
         |__STACK: [Ljava/util/Iterator;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
    L1
    FRAME APPEND [java/util/Iterator]
     ALOAD 2
         |__STACK: [Ljava/util/Iterator;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     INVOKEINTERFACE java/util/Iterator.hasNext ()Z
         |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     IFEQ L2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     ALOAD 2
         |__STACK: [Ljava/util/Iterator;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;
         |__STACK: [Ljava/lang/Object;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     CHECKCAST java/sql/Statement
         |__STACK: [Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;]
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
    L3
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
     ALOAD 3
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
     ACONST_NULL
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;, NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
     INVOKEVIRTUAL testsubjects/TestSubject.closeResource (Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
    L4
     GOTO L1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;, Ljava/util/Iterator;, Ljava/sql/Statement;]
    L2
    FRAME CHOP 1
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/util/List;]
 Method closeSqlStmt
    L0
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, NULL]
    L1
     ALOAD 1
         |__STACK: [Ljava/sql/Connection;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, NULL]
     INVOKEINTERFACE java/sql/Connection.createStatement ()Ljava/sql/Statement;
         |__STACK: [Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, NULL]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
    L2
     GOTO L3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
    L4
    FRAME FULL [testsubjects/TestSubject java/sql/Connection java/sql/Statement] [java/sql/SQLException]
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
    L5
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
     ALOAD 2
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
     ALOAD 3
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
     INVOKEVIRTUAL testsubjects/TestSubject.closeResource (Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;, Ljava/sql/SQLException;]
    L3
    FRAME SAME
     ALOAD 0
         |__STACK: [Ltestsubjects/TestSubject;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
     ALOAD 2
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
     ACONST_NULL
         |__STACK: [Ltestsubjects/TestSubject;, Ljava/sql/Statement;, NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
     INVOKEVIRTUAL testsubjects/TestSubject.closeResource (Ljava/lang/AutoCloseable;Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
    L6
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/sql/Connection;, Ljava/sql/Statement;]
 Method closeResource
    L0
     ALOAD 1
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNONNULL L1
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L2
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L1
    FRAME SAME
     ALOAD 1
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L3
     GOTO L4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L5
    FRAME SAME1 java/lang/Exception
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
    L6
     ALOAD 2
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
     IFNULL L7
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
    L8
     ALOAD 2
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Exception;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
    L7
    FRAME APPEND [java/lang/Exception]
     ALOAD 3
         |__STACK: [Ljava/lang/Exception;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Exception;]
    L4
    FRAME CHOP 1
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
 Method intAdd
    L0
     ILOAD 0
         |__STACK: [I]
-        |__LOCAL: [I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L1
     IINC 2 1
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L2
     IINC 2 1
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L3
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     IADD
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L4
     IINC 2 -1
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L5
     IINC 2 -1
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L6
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     ISUB
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L7
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     IMUL
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L8
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     IDIV
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L9
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     IREM
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L10
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ICONST_2
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     ISHL
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L11
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ILOAD 1
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     ISHR
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L12
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ICONST_3
         |__STACK: [I, I]
-        |__LOCAL: [I, I, I]
     IUSHR
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     ISTORE 2
         |__STACK: []
-        |__LOCAL: [I, I, I]
    L13
     ILOAD 2
         |__STACK: [I]
-        |__LOCAL: [I, I, I]
     I2L
         |__STACK: [J, TOP]
-        |__LOCAL: [I, I, I]
     LSTORE 3
         |__STACK: []
-        |__LOCAL: [I, I, I, J, TOP]
    L14
     LLOAD 3
         |__STACK: [J, TOP]
-        |__LOCAL: [I, I, I, J, TOP]
     ILOAD 1
         |__STACK: [J, TOP, I]
-        |__LOCAL: [I, I, I, J, TOP]
     LSHL
         |__STACK: [J, TOP]
-        |__LOCAL: [I, I, I, J, TOP]
     LSTORE 3
         |__STACK: []
-        |__LOCAL: [I, I, I, J, TOP]
    L15
     LLOAD 3
         |__STACK: [J, TOP]
-        |__LOCAL: [I, I, I, J, TOP]
     L2I
         |__STACK: [I]
-        |__LOCAL: [I, I, I, J, TOP]
     IRETURN
         |__STACK: []
-        |__LOCAL: [I, I, I, J, TOP]
 Method createNumberWithDiamond
    L0
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [I]
     ASTORE 1
         |__STACK: []
-        |__LOCAL: [I, NULL]
    L1
     ILOAD 0
         |__STACK: [I]
-        |__LOCAL: [I, NULL]
     IFEQ L2
         |__STACK: []
-        |__LOCAL: [I, NULL]
    L3
     NEW java/lang/Integer
         |__STACK: [Ljava/lang/Integer;]
-        |__LOCAL: [I, NULL]
     DUP
         |__STACK: [Ljava/lang/Integer;, Ljava/lang/Integer;]
-        |__LOCAL: [I, NULL]
     ICONST_1
         |__STACK: [Ljava/lang/Integer;, Ljava/lang/Integer;, I]
-        |__LOCAL: [I, NULL]
     INVOKESPECIAL java/lang/Integer.<init> (I)V
         |__STACK: [Ljava/lang/Integer;]
-        |__LOCAL: [I, NULL]
     ASTORE 1
         |__STACK: []
-        |__LOCAL: [I, Ljava/lang/Integer;]
     GOTO L4
         |__STACK: []
-        |__LOCAL: [I, Ljava/lang/Integer;]
    L2
    FRAME APPEND [java/lang/Number]
     NEW java/lang/Double
         |__STACK: [Ljava/lang/Double;]
-        |__LOCAL: [I, Ljava/lang/Number;]
     DUP
         |__STACK: [Ljava/lang/Double;, Ljava/lang/Double;]
-        |__LOCAL: [I, Ljava/lang/Number;]
     DCONST_1
         |__STACK: [Ljava/lang/Double;, Ljava/lang/Double;, D, TOP]
-        |__LOCAL: [I, Ljava/lang/Number;]
     INVOKESPECIAL java/lang/Double.<init> (D)V
         |__STACK: [Ljava/lang/Double;]
-        |__LOCAL: [I, Ljava/lang/Number;]
     ASTORE 1
         |__STACK: []
-        |__LOCAL: [I, Ljava/lang/Double;]
    L4
    FRAME SAME
     ALOAD 1
         |__STACK: [Ljava/lang/Number;]
-        |__LOCAL: [I, Ljava/lang/Number;]
     ARETURN
         |__STACK: []
-        |__LOCAL: [I, Ljava/lang/Number;]
 Method createMultiObjectArray
    L0
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: []
     ICONST_0
         |__STACK: [I, I]
-        |__LOCAL: []
     MULTIANEWARRAY [[Ljava/lang/Object; 2
         |__STACK: [[[Ljava/lang/Object;]
-        |__LOCAL: []
     ARETURN
         |__STACK: []
-        |__LOCAL: []
 Method createObjectArray
    L0
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: []
     ANEWARRAY java/lang/Object
         |__STACK: [[Ljava/lang/Object;]
-        |__LOCAL: []
     ARETURN
         |__STACK: []
-        |__LOCAL: []
 Method createIntArray
    L0
     ICONST_0
         |__STACK: [I]
-        |__LOCAL: []
     NEWARRAY T_INT
         |__STACK: [[I]
-        |__LOCAL: []
     ARETURN
         |__STACK: []
-        |__LOCAL: []
 Method staticEmpty1
    L0
     RETURN
         |__STACK: []
-        |__LOCAL: []
 Method instanceEmpty1
    L0
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;]
 Method identity
    L0
     ILOAD 0
         |__STACK: [I]
-        |__LOCAL: [I]
     IRETURN
         |__STACK: []
-        |__LOCAL: [I]
 Method identity2
    L0
     ILOAD 0
         |__STACK: [I]
-        |__LOCAL: [I]
     ISTORE 1
         |__STACK: []
-        |__LOCAL: [I, I]
    L1
     ILOAD 1
         |__STACK: [I]
-        |__LOCAL: [I, I]
     IRETURN
         |__STACK: []
-        |__LOCAL: [I, I]
 Method readFile
    L0
     NEW java/io/BufferedReader
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     NEW java/io/FileReader
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     ALOAD 1
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;, Ljava/io/File;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     INVOKESPECIAL java/io/FileReader.<init> (Ljava/io/File;)V
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     INVOKESPECIAL java/io/BufferedReader.<init> (Ljava/io/Reader;)V
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;]
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;]
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
    L1
     NEW java/io/BufferedReader
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     NEW java/io/FileReader
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     ALOAD 1
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;, Ljava/io/File;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/FileReader.<init> (Ljava/io/File;)V
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/BufferedReader.<init> (Ljava/io/Reader;)V
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL]
     ASTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
    L2
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
     ASTORE 5
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L3
     NEW java/io/BufferedReader
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     NEW java/io/FileReader
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     ALOAD 1
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;, Ljava/io/File;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/FileReader.<init> (Ljava/io/File;)V
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/BufferedReader.<init> (Ljava/io/Reader;)V
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     ASTORE 6
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
    L4
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
     ASTORE 7
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L5
     NEW java/io/BufferedReader
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     NEW java/io/FileReader
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     DUP
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     ALOAD 1
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;, Ljava/io/FileReader;, Ljava/io/File;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/FileReader.<init> (Ljava/io/File;)V
         |__STACK: [Ljava/io/BufferedReader;, Ljava/io/BufferedReader;, Ljava/io/FileReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     INVOKESPECIAL java/io/BufferedReader.<init> (Ljava/io/Reader;)V
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     ASTORE 8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
    L6
     ACONST_NULL
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;]
     ASTORE 9
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L7
     ALOAD 8
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     IFNULL L8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     ALOAD 9
         |__STACK: [NULL]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     IFNULL L9
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L10
     ALOAD 8
         |__STACK: [Ljava/io/BufferedReader;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L11
     GOTO L8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL, Ljava/io/BufferedReader;, NULL]
    L12
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable] [java/lang/Throwable]
     ASTORE 10
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 9
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 10
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L9
    FRAME SAME
     ALOAD 8
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L8
    FRAME CHOP 2
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L13
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     ALOAD 7
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L14
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L15
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L16
     GOTO L13
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L17
    FRAME SAME1 java/lang/Throwable
     ASTORE 8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 7
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 8
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L13
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L14
    FRAME SAME
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     GOTO L13
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L18
    FRAME SAME1 java/lang/Throwable
     ASTORE 8
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 8
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ASTORE 7
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 8
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L19
    FRAME SAME1 java/lang/Throwable
     ASTORE 11
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L20
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L21
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ALOAD 7
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L22
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L23
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L24
     GOTO L21
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L25
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable T T T java/lang/Throwable] [java/lang/Throwable]
     ASTORE 12
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 7
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 12
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L21
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L22
    FRAME SAME
     ALOAD 6
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L21
    FRAME SAME
     ALOAD 11
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L13
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable] []
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L26
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     ALOAD 5
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L27
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L28
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L29
     GOTO L26
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L30
    FRAME SAME1 java/lang/Throwable
     ASTORE 6
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 5
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 6
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L26
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L27
    FRAME SAME
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     GOTO L26
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L31
    FRAME SAME1 java/lang/Throwable
     ASTORE 6
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 6
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ASTORE 5
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 6
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L32
    FRAME SAME1 java/lang/Throwable
     ASTORE 13
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L33
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L34
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ALOAD 5
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L35
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L36
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L37
     GOTO L34
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L38
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable java/lang/AutoCloseable java/lang/Throwable T T T T T T T java/lang/Throwable] [java/lang/Throwable]
     ASTORE 14
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 5
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 14
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L34
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L35
    FRAME SAME
     ALOAD 4
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L34
    FRAME SAME
     ALOAD 13
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L26
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable] []
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L39
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     IFNULL L40
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L41
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L42
     GOTO L39
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L43
    FRAME SAME1 java/lang/Throwable
     ASTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 4
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L39
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L40
    FRAME SAME
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
     GOTO L39
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;]
    L44
    FRAME SAME1 java/lang/Throwable
     ASTORE 4
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 4
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ASTORE 3
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 4
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L45
    FRAME SAME1 java/lang/Throwable
     ASTORE 15
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L46
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L47
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     IFNULL L48
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L49
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L50
     GOTO L47
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L51
    FRAME FULL [testsubjects/TestSubject java/io/File java/lang/AutoCloseable java/lang/Throwable T T T T T T T T T T T java/lang/Throwable] [java/lang/Throwable]
     ASTORE 16
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 3
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     ALOAD 16
         |__STACK: [Ljava/lang/Throwable;, Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     INVOKEVIRTUAL java/lang/Throwable.addSuppressed (Ljava/lang/Throwable;)V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
     GOTO L47
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;, Ljava/lang/Throwable;]
    L48
    FRAME SAME
     ALOAD 2
         |__STACK: [Ljava/lang/AutoCloseable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     INVOKEINTERFACE java/lang/AutoCloseable.close ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L47
    FRAME SAME
     ALOAD 15
         |__STACK: [Ljava/lang/Throwable;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
     ATHROW
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/lang/AutoCloseable;, Ljava/lang/Throwable;, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, TOP, Ljava/lang/Throwable;]
    L39
    FRAME FULL [testsubjects/TestSubject java/io/File] []
     GOTO L52
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
    L53
    FRAME SAME1 java/io/IOException
     ASTORE 2
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/IOException;]
    L54
     ALOAD 2
         |__STACK: [Ljava/io/IOException;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/IOException;]
     INVOKEVIRTUAL java/io/IOException.printStackTrace ()V
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;, Ljava/io/IOException;]
    L52
    FRAME SAME
     RETURN
         |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, Ljava/io/File;]
-Method testWithDoubleTypes
-   L0
-    DCONST_1
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;]
-    DSTORE 1
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP]
-   L1
-    DCONST_1
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP]
-    DSTORE 3
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-   L2
-   FRAME APPEND [D D]
-    DLOAD 3
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    LDC 22.0
-        |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DCMPG
-        |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    IFGE L3
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-   L4
-    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
-        |__STACK: [Ljava/io/PrintStream;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DLOAD 3
-        |__STACK: [Ljava/io/PrintStream;, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    INVOKEVIRTUAL java/io/PrintStream.println (D)V
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-   L5
-    DLOAD 1
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DLOAD 3
-        |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DADD
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DSTORE 1
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-   L6
-    DLOAD 3
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DCONST_1
-        |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DADD
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    DSTORE 3
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-    GOTO L2
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP, D, TOP]
-   L3
-   FRAME CHOP 1
-    DLOAD 1
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP]
-    DRETURN
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, D, TOP]
-Method testWithFloatAndDoubleTypes
-   L0
-    FCONST_1
-        |__STACK: [F]
-        |__LOCAL: [Ltestsubjects/TestSubject;]
-    FSTORE 1
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F]
-   L1
-    DCONST_1
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F]
-    DSTORE 2
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-   L2
-   FRAME APPEND [F D]
-    DLOAD 2
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    LDC 22.0
-        |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DCMPG
-        |__STACK: [I]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    IFGE L3
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-   L4
-    GETSTATIC java/lang/System.out : Ljava/io/PrintStream;
-        |__STACK: [Ljava/io/PrintStream;]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DLOAD 2
-        |__STACK: [Ljava/io/PrintStream;, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    INVOKEVIRTUAL java/io/PrintStream.println (D)V
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-   L5
-    FLOAD 1
-        |__STACK: [F]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DLOAD 2
-        |__STACK: [F, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    D2F
-        |__STACK: [F, F]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    FADD
-        |__STACK: [F]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    FSTORE 1
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-   L6
-    DLOAD 2
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DCONST_1
-        |__STACK: [D, TOP, D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DADD
-        |__STACK: [D, TOP]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    DSTORE 2
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-    GOTO L2
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F, D, TOP]
-   L3
-   FRAME CHOP 1
-    FLOAD 1
-        |__STACK: [F]
-        |__LOCAL: [Ltestsubjects/TestSubject;, F]
-    FRETURN
-        |__STACK: []
-        |__LOCAL: [Ltestsubjects/TestSubject;, F]
 Method <clinit>
    L0
     ICONST_1
         |__STACK: [I]
-        |__LOCAL: []
     PUTSTATIC testsubjects/TestSubject.VALUE_ONE : I
         |__STACK: []
-        |__LOCAL: []
    L1
     ICONST_2
         |__STACK: [I]
-        |__LOCAL: []
     PUTSTATIC testsubjects/TestSubject.VALUE_TWO : I
         |__STACK: []
-        |__LOCAL: []
     RETURN
-        |__STACK: []
-        |__LOCAL: []
\ No newline at end of file
+        |__STACK: []
\ No newline at end of file
diff --git a/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java b/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
index 476da87..2573648 100644
--- a/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
+++ b/test/java/com/google/devtools/build/android/desugar/BytecodeTypeInferenceTest.java
@@ -13,11 +13,8 @@
 // limitations under the License.
 package com.google.devtools.build.android.desugar;
 
-import static com.google.common.truth.Truth.assertThat;
-
-import com.google.common.collect.ImmutableMap;
 import com.google.common.io.Files;
-import com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType;
+import com.google.common.truth.Truth;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -27,7 +24,6 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
-import org.objectweb.asm.Label;
 
 /** Test for {@link BytecodeTypeInference} */
 @RunWith(JUnit4.class)
@@ -37,7 +33,7 @@
   private static final Path GOLDEN_PATH = Paths.get(System.getProperty("golden_file"));
 
   @Test
-  public void testTypeInference() throws IOException {
+  public void test() throws IOException {
     StringWriter stringWriter = new StringWriter();
     try (PrintWriter printWriter = new PrintWriter(stringWriter)) {
       ByteCodeTypePrinter.printClassesWithTypes(JAR_PATH, printWriter);
@@ -45,37 +41,6 @@
     }
     String inferenceResult = stringWriter.toString().trim();
     String golden = Files.asCharSource(GOLDEN_PATH.toFile(), StandardCharsets.UTF_8).read().trim();
-    assertThat(inferenceResult).isEqualTo(golden);
-  }
-
-  @Test
-  public void testUninitializedInferType() {
-    Label label = new Label();
-    InferredType type = InferredType.createUninitializedType(label);
-    assertThat(type.descriptor()).isEqualTo(InferredType.UNINITIALIZED_PREFIX);
-    assertThat(type.uninitializationLabel()).isEqualTo(label);
-  }
-
-  @Test
-  public void testNonUninitializedInferType() {
-    ImmutableMap<String, InferredType> map =
-        ImmutableMap.<String, InferredType>builder()
-            .put("Z", InferredType.BOOLEAN)
-            .put("B", InferredType.BYTE)
-            .put("I", InferredType.INT)
-            .put("F", InferredType.FLOAT)
-            .put("D", InferredType.DOUBLE)
-            .put("J", InferredType.LONG)
-            .put("TOP", InferredType.TOP)
-            .put("NULL", InferredType.NULL)
-            .put("UNINITIALIZED_THIS", InferredType.UNINITIALIZED_THIS)
-            .build();
-    map.forEach(
-        (descriptor, expected) -> {
-          InferredType type = InferredType.createNonUninitializedType(descriptor);
-          assertThat(type.uninitializationLabel()).isNull();
-          assertThat(type.descriptor()).isEqualTo(descriptor);
-          assertThat(type).isSameAs(expected);
-        });
+    Truth.assertThat(inferenceResult).isEqualTo(golden);
   }
 }
diff --git a/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar b/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar
index f1bb726..efa491b 100644
--- a/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar
+++ b/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/test_subjects.jar
Binary files differ
diff --git a/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/testsubjects/TestSubject.java b/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/testsubjects/TestSubject.java
index a07e73b..b5463a7 100644
--- a/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/testsubjects/TestSubject.java
+++ b/test/java/com/google/devtools/build/android/desugar/classes_for_testing_type_inference/testsubjects/TestSubject.java
@@ -193,22 +193,4 @@
       e.printStackTrace();
     }
   }
-
-  public double testWithDoubleTypes() {
-    double result = 1;
-    for (double i = 1; i < 22; i = i + 1) {
-      System.out.println(i);
-      result += i;
-    }
-    return result;
-  }
-
-  public float testWithFloatAndDoubleTypes() {
-    float result = 1;
-    for (double i = 1; i < 22; i = i + 1) {
-      System.out.println(i);
-      result += (float) i;
-    }
-    return result;
-  }
 }