Switched compatibility to ASM7

Lots of files used ASM in ASM6 compatibility, I switched to ASM7.
I introduced an ASM_VERSION internal option which I set to ASM7 and
replaced most references to ASM6 constant to ASM_VERSION. In a few
places using ASM_VERSION was introducing new dependencies so
I just used directly the ASM7 constant.

Bug: 130529338
Change-Id: Ie8bbeb36701198dc25fb2307e5467cb2079f315c
diff --git a/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java b/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
index 7a3224b..4aa5b7c 100644
--- a/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
+++ b/src/main/java/com/android/tools/r8/graph/JarClassFileReader.java
@@ -7,7 +7,7 @@
 import static org.objectweb.asm.ClassReader.SKIP_DEBUG;
 import static org.objectweb.asm.ClassReader.SKIP_FRAMES;
 import static org.objectweb.asm.Opcodes.ACC_DEPRECATED;
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 
 import com.android.tools.r8.ProgramResource.Kind;
 import com.android.tools.r8.dex.Constants;
@@ -199,7 +199,7 @@
         byte[] classCache,
         JarApplicationReader application,
         Consumer<DexClass> classConsumer) {
-      super(ASM6);
+      super(ASM_VERSION);
       this.origin = origin;
       this.classKind = classKind;
       this.classConsumer = classConsumer;
@@ -456,7 +456,7 @@
 
     public CreateFieldVisitor(CreateDexClassVisitor parent,
         int access, String name, String desc, String signature, Object value) {
-      super(ASM6);
+      super(ASM_VERSION);
       this.parent = parent;
       this.access = access;
       this.name = name;
@@ -568,7 +568,7 @@
 
     public CreateMethodVisitor(int access, String name, String desc, String signature,
         String[] exceptions, CreateDexClassVisitor parent) {
-      super(ASM6);
+      super(ASM_VERSION);
       this.name = name;
       this.parent = parent;
       this.method = parent.application.getMethod(parent.type, name, desc);
@@ -766,7 +766,7 @@
 
     public CreateAnnotationVisitor(
         JarApplicationReader application, BiConsumer<List<DexString>, List<DexValue>> onVisitEnd) {
-      super(ASM6);
+      super(ASM_VERSION);
       this.application = application;
       this.onVisitEnd = onVisitEnd;
     }
diff --git a/src/main/java/com/android/tools/r8/graph/JarCode.java b/src/main/java/com/android/tools/r8/graph/JarCode.java
index 3fc15e8..53aa5da 100644
--- a/src/main/java/com/android/tools/r8/graph/JarCode.java
+++ b/src/main/java/com/android/tools/r8/graph/JarCode.java
@@ -364,7 +364,7 @@
     private final boolean useJsrInliner;
 
     public SecondVisitor(BiFunction<String, String, JarCode> codeLocator, boolean useJsrInliner) {
-      super(Opcodes.ASM6);
+      super(InternalOptions.ASM_VERSION);
       this.codeLocator = codeLocator;
       this.useJsrInliner = useJsrInliner;
     }
@@ -375,7 +375,7 @@
       MethodNode node =
           useJsrInliner
               ? new JSRInlinerAdapter(null, access, name, desc, signature, exceptions)
-              : new MethodNode(Opcodes.ASM6, access, name, desc, signature, exceptions);
+              : new MethodNode(InternalOptions.ASM_VERSION, access, name, desc, signature, exceptions);
       JarCode code = null;
       MethodAccessFlags flags = JarClassFileReader.createMethodAccessFlags(name, access);
       if (!flags.isAbstract() && !flags.isNative()) {
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index d1e1c5c..c849750 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -58,6 +58,7 @@
 import com.android.tools.r8.ir.code.ValueType;
 import com.android.tools.r8.naming.ClassNameMapper;
 import com.android.tools.r8.origin.Origin;
+import com.android.tools.r8.utils.InternalOptions;
 import it.unimi.dsi.fastutil.ints.Int2ReferenceAVLTreeMap;
 import it.unimi.dsi.fastutil.ints.Int2ReferenceSortedMap;
 import java.util.ArrayList;
@@ -218,7 +219,7 @@
 
     ClassCodeVisitor(
         ReparseContext context, JarApplicationReader application, boolean useJsrInliner) {
-      super(Opcodes.ASM6);
+      super(InternalOptions.ASM_VERSION);
       this.context = context;
       this.application = application;
       this.usrJsrInliner = useJsrInliner;
@@ -256,7 +257,7 @@
     private DexMethod method;
 
     MethodCodeVisitor(JarApplicationReader application, LazyCfCode code) {
-      super(Opcodes.ASM6);
+      super(InternalOptions.ASM_VERSION);
       this.application = application;
       this.factory = application.getFactory();
       this.method = code.method;
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index 6a9e056..dabfd6c 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.jar;
 
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 
 import com.android.tools.r8.ByteDataView;
 import com.android.tools.r8.ClassFileConsumer;
@@ -410,8 +410,8 @@
 
   public static String printCf(byte[] result) {
     ClassReader reader = new ClassReader(result);
-    ClassNode node = new ClassNode(ASM6);
-    reader.accept(node, ASM6);
+    ClassNode node = new ClassNode(ASM_VERSION);
+    reader.accept(node, ASM_VERSION);
     StringWriter writer = new StringWriter();
     for (MethodNode method : node.methods) {
       writer.append(method.name).append(method.desc).append('\n');
diff --git a/src/main/java/com/android/tools/r8/jar/InliningConstraintVisitor.java b/src/main/java/com/android/tools/r8/jar/InliningConstraintVisitor.java
index c2efa88..d560332 100644
--- a/src/main/java/com/android/tools/r8/jar/InliningConstraintVisitor.java
+++ b/src/main/java/com/android/tools/r8/jar/InliningConstraintVisitor.java
@@ -4,7 +4,7 @@
 
 package com.android.tools.r8.jar;
 
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 
 import com.android.tools.r8.dex.Constants;
 import com.android.tools.r8.errors.Unreachable;
@@ -51,7 +51,7 @@
       GraphLense graphLense,
       DexEncodedMethod method,
       DexType invocationContext) {
-    super(ASM6);
+    super(ASM_VERSION);
     assert graphLense.isContextFreeForMethods();
     this.application = application;
     this.appView = appView;
diff --git a/src/main/java/com/android/tools/r8/jar/JarArgumentUseVisitor.java b/src/main/java/com/android/tools/r8/jar/JarArgumentUseVisitor.java
index 9bcb635..429c1eb 100644
--- a/src/main/java/com/android/tools/r8/jar/JarArgumentUseVisitor.java
+++ b/src/main/java/com/android/tools/r8/jar/JarArgumentUseVisitor.java
@@ -5,7 +5,7 @@
 package com.android.tools.r8.jar;
 
 import static org.objectweb.asm.Opcodes.ALOAD;
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 import static org.objectweb.asm.Opcodes.DLOAD;
 import static org.objectweb.asm.Opcodes.FLOAD;
 import static org.objectweb.asm.Opcodes.ILOAD;
@@ -25,7 +25,7 @@
   private final int arguments;
 
   public JarArgumentUseVisitor(DexEncodedMethod method, ArgumentUse registry) {
-    super(ASM6);
+    super(ASM_VERSION);
     this.registry = registry;
 
     DexProto proto = method.method.proto;
diff --git a/src/main/java/com/android/tools/r8/jar/JarRegisterEffectsVisitor.java b/src/main/java/com/android/tools/r8/jar/JarRegisterEffectsVisitor.java
index b445efc..991b861 100644
--- a/src/main/java/com/android/tools/r8/jar/JarRegisterEffectsVisitor.java
+++ b/src/main/java/com/android/tools/r8/jar/JarRegisterEffectsVisitor.java
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.jar;
 
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 
 import com.android.tools.r8.dex.Constants;
 import com.android.tools.r8.errors.Unreachable;
@@ -27,7 +27,7 @@
 
   public JarRegisterEffectsVisitor(DexType clazz, UseRegistry registry,
       JarApplicationReader application) {
-    super(ASM6);
+    super(ASM_VERSION);
     this.clazz = clazz;
     this.registry = registry;
     this.application = application;
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 8df2e21..3a5bd94 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -39,6 +39,7 @@
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.function.Consumer;
+import org.objectweb.asm.Opcodes;
 
 public class InternalOptions {
 
@@ -51,6 +52,8 @@
     ON
   }
 
+  public static final int ASM_VERSION = Opcodes.ASM7;
+
   public final DexItemFactory itemFactory;
 
   public ProguardConfiguration getProguardConfiguration() {
diff --git a/src/test/examplesAndroidO/invokecustom/TestGenerator.java b/src/test/examplesAndroidO/invokecustom/TestGenerator.java
index 05a6f28..9964ed0 100644
--- a/src/test/examplesAndroidO/invokecustom/TestGenerator.java
+++ b/src/test/examplesAndroidO/invokecustom/TestGenerator.java
@@ -41,7 +41,7 @@
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
       cr.accept(
-          new ClassVisitor(Opcodes.ASM6, cw) {
+          new ClassVisitor(Opcodes.ASM7, cw) {
             @Override
             public void visitEnd() {
               generateMethodTest1(cw);
diff --git a/src/test/examplesAndroidO/invokecustom2/TestGenerator.java b/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
index 9bbc03a..377084e 100644
--- a/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
+++ b/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
@@ -42,7 +42,7 @@
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
       cr.accept(
-          new ClassVisitor(Opcodes.ASM6, cw) {
+          new ClassVisitor(Opcodes.ASM7, cw) {
             @Override
             public void visitEnd() {
               generateMethodTest1(cw);
diff --git a/src/test/examplesAndroidO/stringconcat/TestGenerator.java b/src/test/examplesAndroidO/stringconcat/TestGenerator.java
index 12e5004..72bdfbf 100644
--- a/src/test/examplesAndroidO/stringconcat/TestGenerator.java
+++ b/src/test/examplesAndroidO/stringconcat/TestGenerator.java
@@ -51,12 +51,12 @@
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
       cr.accept(
-          new ClassVisitor(Opcodes.ASM6, cw) {
+          new ClassVisitor(Opcodes.ASM7, cw) {
             @Override
             public MethodVisitor visitMethod(int access,
                 final String methodName, String desc, String signature, String[] exceptions) {
               MethodVisitor mv = super.visitMethod(access, methodName, desc, signature, exceptions);
-              return new MethodVisitor(Opcodes.ASM6, mv) {
+              return new MethodVisitor(Opcodes.ASM7, mv) {
                 private List<Object> recentConstants = new ArrayList<>();
 
                 @Override
diff --git a/src/test/examplesAndroidP/invokecustom/TestGenerator.java b/src/test/examplesAndroidP/invokecustom/TestGenerator.java
index 495f080..b08441c 100644
--- a/src/test/examplesAndroidP/invokecustom/TestGenerator.java
+++ b/src/test/examplesAndroidP/invokecustom/TestGenerator.java
@@ -41,7 +41,7 @@
       ClassReader cr = new ClassReader(inputStream);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
       cr.accept(
-          new ClassVisitor(Opcodes.ASM6, cw) {
+          new ClassVisitor(Opcodes.ASM7, cw) {
             @Override
             public void visitEnd() {
               generateMethodTest1(cw);
diff --git a/src/test/java/com/android/tools/r8/CfFrontendExamplesTest.java b/src/test/java/com/android/tools/r8/CfFrontendExamplesTest.java
index a6578ee..fbdc6fc 100644
--- a/src/test/java/com/android/tools/r8/CfFrontendExamplesTest.java
+++ b/src/test/java/com/android/tools/r8/CfFrontendExamplesTest.java
@@ -8,6 +8,7 @@
 import static org.junit.Assert.assertEquals;
 
 import com.android.tools.r8.origin.Origin;
+import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.StringUtils;
 import com.google.common.collect.ImmutableList;
 import java.io.PrintWriter;
@@ -396,7 +397,7 @@
     private final List<Part> parts = new ArrayList<>();
 
     ASMifierSorted() {
-      super(Opcodes.ASM6, "cw", 0);
+      super(InternalOptions.ASM_VERSION, "cw", 0);
     }
 
     @Override
diff --git a/src/test/java/com/android/tools/r8/TestBase.java b/src/test/java/com/android/tools/r8/TestBase.java
index 0ad4f8e..bd57729 100644
--- a/src/test/java/com/android/tools/r8/TestBase.java
+++ b/src/test/java/com/android/tools/r8/TestBase.java
@@ -7,7 +7,7 @@
 import static com.google.common.collect.Lists.cartesianProduct;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import static org.objectweb.asm.Opcodes.ASM6;
+import static com.android.tools.r8.utils.InternalOptions.ASM_VERSION;
 
 import com.android.tools.r8.DataResourceProvider.Visitor;
 import com.android.tools.r8.ToolHelper.ArtCommandBuilder;
@@ -894,7 +894,7 @@
       private String className;
 
       private ClassNameExtractor() {
-        super(ASM6);
+        super(ASM_VERSION);
       }
 
       @Override
diff --git a/src/test/java/com/android/tools/r8/cf/MethodHandleDump.java b/src/test/java/com/android/tools/r8/cf/MethodHandleDump.java
index 9adf616..f400169 100644
--- a/src/test/java/com/android/tools/r8/cf/MethodHandleDump.java
+++ b/src/test/java/com/android/tools/r8/cf/MethodHandleDump.java
@@ -4,6 +4,7 @@
 
 package com.android.tools.r8.cf;
 
+import com.android.tools.r8.utils.InternalOptions;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
 import org.objectweb.asm.ClassReader;
@@ -87,7 +88,7 @@
     ClassReader cr = new ClassReader(input);
     ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
     cr.accept(
-        new ClassVisitor(ASM6, cw) {
+        new ClassVisitor(InternalOptions.ASM_VERSION, cw) {
 
           @Override
           public MethodVisitor visitMethod(
diff --git a/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java b/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
index 3674108..a6ee6a5 100644
--- a/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
+++ b/src/test/java/com/android/tools/r8/desugaring/interfacemethods/InterfaceMethodDesugaringTests.java
@@ -22,6 +22,7 @@
 import com.android.tools.r8.desugaring.interfacemethods.static0.TestMainStatic0;
 import com.android.tools.r8.desugaring.interfacemethods.static1.TestMainStatic1;
 import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.InternalOptions;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -183,12 +184,12 @@
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
       cr.accept(
-          new ClassVisitor(Opcodes.ASM6, cw) {
+          new ClassVisitor(InternalOptions.ASM_VERSION, cw) {
             @Override
             public MethodVisitor visitMethod(int access, String name,
                 String desc, String signature, String[] exceptions) {
               MethodVisitor visitor = super.visitMethod(access, name, desc, signature, exceptions);
-              return new MethodVisitor(Opcodes.ASM6, visitor) {
+              return new MethodVisitor(InternalOptions.ASM_VERSION, visitor) {
                 @Override
                 public void visitMethodInsn(
                     int opcode, String owner, String name, String desc, boolean itf) {
diff --git a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
index ac48680..a6fd390 100644
--- a/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
+++ b/src/test/java/com/android/tools/r8/jsr45/JSR45Tests.java
@@ -14,6 +14,7 @@
 import com.android.tools.r8.utils.AndroidApiLevel;
 import com.android.tools.r8.utils.AndroidApp;
 import com.android.tools.r8.utils.AndroidAppConsumers;
+import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.codeinspector.AnnotationSubject;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -144,7 +145,7 @@
       throws IOException, ExecutionException {
     ClassReader classReader = new ClassReader(new FileInputStream(inputPath.toFile()));
     ReadSourceDebugExtensionAttribute sourceDebugExtensionReader =
-        new ReadSourceDebugExtensionAttribute(Opcodes.ASM6, null);
+        new ReadSourceDebugExtensionAttribute(InternalOptions.ASM_VERSION, null);
     classReader.accept(sourceDebugExtensionReader, 0);
 
     CodeInspector codeInspector = new CodeInspector(androidApp);
diff --git a/src/test/java/com/android/tools/r8/kotlin/AsmUtils.java b/src/test/java/com/android/tools/r8/kotlin/AsmUtils.java
index 7b7abcb..b4a9b24 100644
--- a/src/test/java/com/android/tools/r8/kotlin/AsmUtils.java
+++ b/src/test/java/com/android/tools/r8/kotlin/AsmUtils.java
@@ -5,6 +5,7 @@
 package com.android.tools.r8.kotlin;
 
 import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.InternalOptions;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.nio.file.Files;
@@ -46,7 +47,7 @@
     public boolean foundMethod = false;
 
     public MethodFinder(String methodName, String methodDescriptor) {
-      super(Opcodes.ASM6);
+      super(InternalOptions.ASM_VERSION);
       this.methodName = methodName;
       this.methodDescriptor = methodDescriptor;
     }
@@ -77,7 +78,7 @@
     public boolean foundField = false;
 
     public FieldFinder(String fieldName, String fieldType) {
-      super(Opcodes.ASM6);
+      super(InternalOptions.ASM_VERSION);
       this.fieldName = fieldName;
       this.fieldDescriptor = DescriptorUtils.javaTypeToDescriptor(fieldType);
     }
diff --git a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
index fac04f0..df88a4e 100644
--- a/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
+++ b/src/test/java/com/android/tools/r8/rewrite/assertions/RemoveAssertionsTest.java
@@ -15,6 +15,7 @@
 import com.android.tools.r8.dex.Constants;
 import com.android.tools.r8.naming.MemberNaming.MethodSignature;
 import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.StringUtils;
 import com.android.tools.r8.utils.codeinspector.ClassSubject;
 import com.android.tools.r8.utils.codeinspector.CodeInspector;
@@ -75,7 +76,7 @@
  */
 class AssertionEnablerClassAdapter extends ClassVisitor {
   AssertionEnablerClassAdapter(ClassVisitor visitor) {
-    super(Opcodes.ASM6, visitor);
+    super(InternalOptions.ASM_VERSION, visitor);
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/shaking/examples/InliningClassVersionTest.java b/src/test/java/com/android/tools/r8/shaking/examples/InliningClassVersionTest.java
index 1197c31..8cb9074 100644
--- a/src/test/java/com/android/tools/r8/shaking/examples/InliningClassVersionTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/examples/InliningClassVersionTest.java
@@ -16,6 +16,7 @@
 import com.android.tools.r8.ToolHelper.ProcessResult;
 import com.android.tools.r8.origin.Origin;
 import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.InternalOptions;
 import com.google.common.io.ByteStreams;
 import java.nio.file.Path;
 import java.util.Collections;
@@ -49,7 +50,7 @@
     private final int version;
 
     DowngradeVisitor(ClassVisitor cv, int version) {
-      super(Opcodes.ASM6, cv);
+      super(InternalOptions.ASM_VERSION, cv);
       this.version = version;
     }
 
@@ -96,7 +97,7 @@
       private int version = -1;
 
       private ClassVersionReader() {
-        super(Opcodes.ASM6);
+        super(InternalOptions.ASM_VERSION);
       }
 
       @Override