Merge changes I49be7f28,I8e797c1f

* changes:
  Move remainder of classes out of doclava1 package.
  Remove all the rules since they use legacy anchors.
diff --git a/src/main/java/com/android/tools/metalava/AndroidApiChecks.kt b/src/main/java/com/android/tools/metalava/AndroidApiChecks.kt
index ef49b01..f907b59 100644
--- a/src/main/java/com/android/tools/metalava/AndroidApiChecks.kt
+++ b/src/main/java/com/android/tools/metalava/AndroidApiChecks.kt
@@ -17,7 +17,6 @@
 package com.android.tools.metalava
 
 import com.android.SdkConstants
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationAttributeValue
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
diff --git a/src/main/java/com/android/tools/metalava/AnnotationStatistics.kt b/src/main/java/com/android/tools/metalava/AnnotationStatistics.kt
index b9614a8..acc6d3f 100644
--- a/src/main/java/com/android/tools/metalava/AnnotationStatistics.kt
+++ b/src/main/java/com/android/tools/metalava/AnnotationStatistics.kt
@@ -17,7 +17,6 @@
 package com.android.tools.metalava
 
 import com.android.SdkConstants
-import com.android.tools.metalava.doclava1.ApiPredicate
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.FieldItem
diff --git a/src/main/java/com/android/tools/metalava/AnnotationsDiffer.kt b/src/main/java/com/android/tools/metalava/AnnotationsDiffer.kt
index 6bb1434..f5bba25 100644
--- a/src/main/java/com/android/tools/metalava/AnnotationsDiffer.kt
+++ b/src/main/java/com/android/tools/metalava/AnnotationsDiffer.kt
@@ -16,9 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.Issues
-import com.android.tools.metalava.doclava1.FilterPredicate
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.Item
 import java.io.File
diff --git a/src/main/java/com/android/tools/metalava/ApiAnalyzer.kt b/src/main/java/com/android/tools/metalava/ApiAnalyzer.kt
index e433991..ad84363 100644
--- a/src/main/java/com/android/tools/metalava/ApiAnalyzer.kt
+++ b/src/main/java/com/android/tools/metalava/ApiAnalyzer.kt
@@ -16,8 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationAttributeValue
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
diff --git a/src/main/java/com/android/tools/metalava/ApiLint.kt b/src/main/java/com/android/tools/metalava/ApiLint.kt
index 9af049c..051d216 100644
--- a/src/main/java/com/android/tools/metalava/ApiLint.kt
+++ b/src/main/java/com/android/tools/metalava/ApiLint.kt
@@ -46,97 +46,97 @@
 import com.android.resources.ResourceType.TRANSITION
 import com.android.resources.ResourceType.XML
 import com.android.sdklib.SdkVersionInfo
-import com.android.tools.metalava.doclava1.Issues.ABSTRACT_INNER
-import com.android.tools.metalava.doclava1.Issues.ACRONYM_NAME
-import com.android.tools.metalava.doclava1.Issues.ACTION_VALUE
-import com.android.tools.metalava.doclava1.Issues.ALL_UPPER
-import com.android.tools.metalava.doclava1.Issues.ANDROID_URI
-import com.android.tools.metalava.doclava1.Issues.ARRAY_RETURN
-import com.android.tools.metalava.doclava1.Issues.AUTO_BOXING
-import com.android.tools.metalava.doclava1.Issues.BAD_FUTURE
-import com.android.tools.metalava.doclava1.Issues.BANNED_THROW
-import com.android.tools.metalava.doclava1.Issues.BUILDER_SET_STYLE
-import com.android.tools.metalava.doclava1.Issues.CALLBACK_INTERFACE
-import com.android.tools.metalava.doclava1.Issues.CALLBACK_METHOD_NAME
-import com.android.tools.metalava.doclava1.Issues.CALLBACK_NAME
-import com.android.tools.metalava.doclava1.Issues.COMMON_ARGS_FIRST
-import com.android.tools.metalava.doclava1.Issues.COMPILE_TIME_CONSTANT
-import com.android.tools.metalava.doclava1.Issues.CONCRETE_COLLECTION
-import com.android.tools.metalava.doclava1.Issues.CONFIG_FIELD_NAME
-import com.android.tools.metalava.doclava1.Issues.CONSISTENT_ARGUMENT_ORDER
-import com.android.tools.metalava.doclava1.Issues.CONTEXT_FIRST
-import com.android.tools.metalava.doclava1.Issues.CONTEXT_NAME_SUFFIX
-import com.android.tools.metalava.doclava1.Issues.ENDS_WITH_IMPL
-import com.android.tools.metalava.doclava1.Issues.ENUM
-import com.android.tools.metalava.doclava1.Issues.EQUALS_AND_HASH_CODE
-import com.android.tools.metalava.doclava1.Issues.EXCEPTION_NAME
-import com.android.tools.metalava.doclava1.Issues.EXECUTOR_REGISTRATION
-import com.android.tools.metalava.doclava1.Issues.EXTENDS_ERROR
-import com.android.tools.metalava.doclava1.Issues.FORBIDDEN_SUPER_CLASS
-import com.android.tools.metalava.doclava1.Issues.FRACTION_FLOAT
-import com.android.tools.metalava.doclava1.Issues.GENERIC_EXCEPTION
-import com.android.tools.metalava.doclava1.Issues.GETTER_ON_BUILDER
-import com.android.tools.metalava.doclava1.Issues.GETTER_SETTER_NAMES
-import com.android.tools.metalava.doclava1.Issues.HEAVY_BIT_SET
-import com.android.tools.metalava.doclava1.Issues.ILLEGAL_STATE_EXCEPTION
-import com.android.tools.metalava.doclava1.Issues.INTENT_BUILDER_NAME
-import com.android.tools.metalava.doclava1.Issues.INTENT_NAME
-import com.android.tools.metalava.doclava1.Issues.INTERFACE_CONSTANT
-import com.android.tools.metalava.doclava1.Issues.INTERNAL_CLASSES
-import com.android.tools.metalava.doclava1.Issues.INTERNAL_FIELD
-import com.android.tools.metalava.doclava1.Issues.Issue
-import com.android.tools.metalava.doclava1.Issues.KOTLIN_OPERATOR
-import com.android.tools.metalava.doclava1.Issues.LISTENER_INTERFACE
-import com.android.tools.metalava.doclava1.Issues.LISTENER_LAST
-import com.android.tools.metalava.doclava1.Issues.MANAGER_CONSTRUCTOR
-import com.android.tools.metalava.doclava1.Issues.MANAGER_LOOKUP
-import com.android.tools.metalava.doclava1.Issues.MENTIONS_GOOGLE
-import com.android.tools.metalava.doclava1.Issues.METHOD_NAME_TENSE
-import com.android.tools.metalava.doclava1.Issues.METHOD_NAME_UNITS
-import com.android.tools.metalava.doclava1.Issues.MIN_MAX_CONSTANT
-import com.android.tools.metalava.doclava1.Issues.MISSING_BUILD_METHOD
-import com.android.tools.metalava.doclava1.Issues.MISSING_GETTER_MATCHING_BUILDER
-import com.android.tools.metalava.doclava1.Issues.MISSING_NULLABILITY
-import com.android.tools.metalava.doclava1.Issues.MUTABLE_BARE_FIELD
-import com.android.tools.metalava.doclava1.Issues.NOT_CLOSEABLE
-import com.android.tools.metalava.doclava1.Issues.NO_BYTE_OR_SHORT
-import com.android.tools.metalava.doclava1.Issues.NO_CLONE
-import com.android.tools.metalava.doclava1.Issues.NO_SETTINGS_PROVIDER
-import com.android.tools.metalava.doclava1.Issues.ON_NAME_EXPECTED
-import com.android.tools.metalava.doclava1.Issues.OPTIONAL_BUILDER_CONSTRUCTOR_ARGUMENT
-import com.android.tools.metalava.doclava1.Issues.OVERLAPPING_CONSTANTS
-import com.android.tools.metalava.doclava1.Issues.PACKAGE_LAYERING
-import com.android.tools.metalava.doclava1.Issues.PAIRED_REGISTRATION
-import com.android.tools.metalava.doclava1.Issues.PARCELABLE_LIST
-import com.android.tools.metalava.doclava1.Issues.PARCEL_CONSTRUCTOR
-import com.android.tools.metalava.doclava1.Issues.PARCEL_CREATOR
-import com.android.tools.metalava.doclava1.Issues.PARCEL_NOT_FINAL
-import com.android.tools.metalava.doclava1.Issues.PERCENTAGE_INT
-import com.android.tools.metalava.doclava1.Issues.PROTECTED_MEMBER
-import com.android.tools.metalava.doclava1.Issues.PUBLIC_TYPEDEF
-import com.android.tools.metalava.doclava1.Issues.RAW_AIDL
-import com.android.tools.metalava.doclava1.Issues.REGISTRATION_NAME
-import com.android.tools.metalava.doclava1.Issues.RESOURCE_FIELD_NAME
-import com.android.tools.metalava.doclava1.Issues.RESOURCE_STYLE_FIELD_NAME
-import com.android.tools.metalava.doclava1.Issues.RESOURCE_VALUE_FIELD_NAME
-import com.android.tools.metalava.doclava1.Issues.RETHROW_REMOTE_EXCEPTION
-import com.android.tools.metalava.doclava1.Issues.SERVICE_NAME
-import com.android.tools.metalava.doclava1.Issues.SETTER_RETURNS_THIS
-import com.android.tools.metalava.doclava1.Issues.SINGLETON_CONSTRUCTOR
-import com.android.tools.metalava.doclava1.Issues.SINGLE_METHOD_INTERFACE
-import com.android.tools.metalava.doclava1.Issues.SINGULAR_CALLBACK
-import com.android.tools.metalava.doclava1.Issues.START_WITH_LOWER
-import com.android.tools.metalava.doclava1.Issues.START_WITH_UPPER
-import com.android.tools.metalava.doclava1.Issues.STATIC_FINAL_BUILDER
-import com.android.tools.metalava.doclava1.Issues.STATIC_UTILS
-import com.android.tools.metalava.doclava1.Issues.STREAM_FILES
-import com.android.tools.metalava.doclava1.Issues.TOP_LEVEL_BUILDER
-import com.android.tools.metalava.doclava1.Issues.UNIQUE_KOTLIN_OPERATOR
-import com.android.tools.metalava.doclava1.Issues.USER_HANDLE
-import com.android.tools.metalava.doclava1.Issues.USER_HANDLE_NAME
-import com.android.tools.metalava.doclava1.Issues.USE_ICU
-import com.android.tools.metalava.doclava1.Issues.USE_PARCEL_FILE_DESCRIPTOR
-import com.android.tools.metalava.doclava1.Issues.VISIBLY_SYNCHRONIZED
+import com.android.tools.metalava.Issues.ABSTRACT_INNER
+import com.android.tools.metalava.Issues.ACRONYM_NAME
+import com.android.tools.metalava.Issues.ACTION_VALUE
+import com.android.tools.metalava.Issues.ALL_UPPER
+import com.android.tools.metalava.Issues.ANDROID_URI
+import com.android.tools.metalava.Issues.ARRAY_RETURN
+import com.android.tools.metalava.Issues.AUTO_BOXING
+import com.android.tools.metalava.Issues.BAD_FUTURE
+import com.android.tools.metalava.Issues.BANNED_THROW
+import com.android.tools.metalava.Issues.BUILDER_SET_STYLE
+import com.android.tools.metalava.Issues.CALLBACK_INTERFACE
+import com.android.tools.metalava.Issues.CALLBACK_METHOD_NAME
+import com.android.tools.metalava.Issues.CALLBACK_NAME
+import com.android.tools.metalava.Issues.COMMON_ARGS_FIRST
+import com.android.tools.metalava.Issues.COMPILE_TIME_CONSTANT
+import com.android.tools.metalava.Issues.CONCRETE_COLLECTION
+import com.android.tools.metalava.Issues.CONFIG_FIELD_NAME
+import com.android.tools.metalava.Issues.CONSISTENT_ARGUMENT_ORDER
+import com.android.tools.metalava.Issues.CONTEXT_FIRST
+import com.android.tools.metalava.Issues.CONTEXT_NAME_SUFFIX
+import com.android.tools.metalava.Issues.ENDS_WITH_IMPL
+import com.android.tools.metalava.Issues.ENUM
+import com.android.tools.metalava.Issues.EQUALS_AND_HASH_CODE
+import com.android.tools.metalava.Issues.EXCEPTION_NAME
+import com.android.tools.metalava.Issues.EXECUTOR_REGISTRATION
+import com.android.tools.metalava.Issues.EXTENDS_ERROR
+import com.android.tools.metalava.Issues.FORBIDDEN_SUPER_CLASS
+import com.android.tools.metalava.Issues.FRACTION_FLOAT
+import com.android.tools.metalava.Issues.GENERIC_EXCEPTION
+import com.android.tools.metalava.Issues.GETTER_ON_BUILDER
+import com.android.tools.metalava.Issues.GETTER_SETTER_NAMES
+import com.android.tools.metalava.Issues.HEAVY_BIT_SET
+import com.android.tools.metalava.Issues.ILLEGAL_STATE_EXCEPTION
+import com.android.tools.metalava.Issues.INTENT_BUILDER_NAME
+import com.android.tools.metalava.Issues.INTENT_NAME
+import com.android.tools.metalava.Issues.INTERFACE_CONSTANT
+import com.android.tools.metalava.Issues.INTERNAL_CLASSES
+import com.android.tools.metalava.Issues.INTERNAL_FIELD
+import com.android.tools.metalava.Issues.Issue
+import com.android.tools.metalava.Issues.KOTLIN_OPERATOR
+import com.android.tools.metalava.Issues.LISTENER_INTERFACE
+import com.android.tools.metalava.Issues.LISTENER_LAST
+import com.android.tools.metalava.Issues.MANAGER_CONSTRUCTOR
+import com.android.tools.metalava.Issues.MANAGER_LOOKUP
+import com.android.tools.metalava.Issues.MENTIONS_GOOGLE
+import com.android.tools.metalava.Issues.METHOD_NAME_TENSE
+import com.android.tools.metalava.Issues.METHOD_NAME_UNITS
+import com.android.tools.metalava.Issues.MIN_MAX_CONSTANT
+import com.android.tools.metalava.Issues.MISSING_BUILD_METHOD
+import com.android.tools.metalava.Issues.MISSING_GETTER_MATCHING_BUILDER
+import com.android.tools.metalava.Issues.MISSING_NULLABILITY
+import com.android.tools.metalava.Issues.MUTABLE_BARE_FIELD
+import com.android.tools.metalava.Issues.NOT_CLOSEABLE
+import com.android.tools.metalava.Issues.NO_BYTE_OR_SHORT
+import com.android.tools.metalava.Issues.NO_CLONE
+import com.android.tools.metalava.Issues.NO_SETTINGS_PROVIDER
+import com.android.tools.metalava.Issues.ON_NAME_EXPECTED
+import com.android.tools.metalava.Issues.OPTIONAL_BUILDER_CONSTRUCTOR_ARGUMENT
+import com.android.tools.metalava.Issues.OVERLAPPING_CONSTANTS
+import com.android.tools.metalava.Issues.PACKAGE_LAYERING
+import com.android.tools.metalava.Issues.PAIRED_REGISTRATION
+import com.android.tools.metalava.Issues.PARCELABLE_LIST
+import com.android.tools.metalava.Issues.PARCEL_CONSTRUCTOR
+import com.android.tools.metalava.Issues.PARCEL_CREATOR
+import com.android.tools.metalava.Issues.PARCEL_NOT_FINAL
+import com.android.tools.metalava.Issues.PERCENTAGE_INT
+import com.android.tools.metalava.Issues.PROTECTED_MEMBER
+import com.android.tools.metalava.Issues.PUBLIC_TYPEDEF
+import com.android.tools.metalava.Issues.RAW_AIDL
+import com.android.tools.metalava.Issues.REGISTRATION_NAME
+import com.android.tools.metalava.Issues.RESOURCE_FIELD_NAME
+import com.android.tools.metalava.Issues.RESOURCE_STYLE_FIELD_NAME
+import com.android.tools.metalava.Issues.RESOURCE_VALUE_FIELD_NAME
+import com.android.tools.metalava.Issues.RETHROW_REMOTE_EXCEPTION
+import com.android.tools.metalava.Issues.SERVICE_NAME
+import com.android.tools.metalava.Issues.SETTER_RETURNS_THIS
+import com.android.tools.metalava.Issues.SINGLETON_CONSTRUCTOR
+import com.android.tools.metalava.Issues.SINGLE_METHOD_INTERFACE
+import com.android.tools.metalava.Issues.SINGULAR_CALLBACK
+import com.android.tools.metalava.Issues.START_WITH_LOWER
+import com.android.tools.metalava.Issues.START_WITH_UPPER
+import com.android.tools.metalava.Issues.STATIC_FINAL_BUILDER
+import com.android.tools.metalava.Issues.STATIC_UTILS
+import com.android.tools.metalava.Issues.STREAM_FILES
+import com.android.tools.metalava.Issues.TOP_LEVEL_BUILDER
+import com.android.tools.metalava.Issues.UNIQUE_KOTLIN_OPERATOR
+import com.android.tools.metalava.Issues.USER_HANDLE
+import com.android.tools.metalava.Issues.USER_HANDLE_NAME
+import com.android.tools.metalava.Issues.USE_ICU
+import com.android.tools.metalava.Issues.USE_PARCEL_FILE_DESCRIPTOR
+import com.android.tools.metalava.Issues.VISIBLY_SYNCHRONIZED
 import com.android.tools.metalava.model.AnnotationItem
 import com.android.tools.metalava.model.AnnotationItem.Companion.getImplicitNullness
 import com.android.tools.metalava.model.ClassItem
diff --git a/src/main/java/com/android/tools/metalava/doclava1/ApiPredicate.kt b/src/main/java/com/android/tools/metalava/ApiPredicate.kt
similarity index 89%
rename from src/main/java/com/android/tools/metalava/doclava1/ApiPredicate.kt
rename to src/main/java/com/android/tools/metalava/ApiPredicate.kt
index bac6155..1178900 100644
--- a/src/main/java/com/android/tools/metalava/doclava1/ApiPredicate.kt
+++ b/src/main/java/com/android/tools/metalava/ApiPredicate.kt
@@ -1,15 +1,27 @@
-package com.android.tools.metalava.doclava1
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
-import com.android.tools.metalava.Options
+package com.android.tools.metalava
+
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.MemberItem
 import com.android.tools.metalava.model.PackageItem
-import com.android.tools.metalava.options
 import java.util.function.Predicate
 
-// Ported from doclava1
-
 /**
  * Predicate that decides if the given member should be considered part of an
  * API surface area. To make the most accurate decision, it searches for
diff --git a/src/main/java/com/android/tools/metalava/ApiType.kt b/src/main/java/com/android/tools/metalava/ApiType.kt
index c9372c2..228796c 100644
--- a/src/main/java/com/android/tools/metalava/ApiType.kt
+++ b/src/main/java/com/android/tools/metalava/ApiType.kt
@@ -17,9 +17,6 @@
 package com.android.tools.metalava
 
 import com.android.SdkConstants.DOT_TXT
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.ElidingPredicate
-import com.android.tools.metalava.doclava1.FilterPredicate
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.Item
 import java.io.File
diff --git a/src/main/java/com/android/tools/metalava/ArtifactTagger.kt b/src/main/java/com/android/tools/metalava/ArtifactTagger.kt
index 3dfb49c..916ace5 100644
--- a/src/main/java/com/android/tools/metalava/ArtifactTagger.kt
+++ b/src/main/java/com/android/tools/metalava/ArtifactTagger.kt
@@ -18,7 +18,6 @@
 
 import com.android.tools.metalava.model.text.ApiFile
 import com.android.tools.metalava.model.text.ApiParseException
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.text.TextCodebase
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
diff --git a/src/main/java/com/android/tools/metalava/Baseline.kt b/src/main/java/com/android/tools/metalava/Baseline.kt
index 6328976..f101fb6 100644
--- a/src/main/java/com/android/tools/metalava/Baseline.kt
+++ b/src/main/java/com/android/tools/metalava/Baseline.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.FieldItem
 import com.android.tools.metalava.model.Item
diff --git a/src/main/java/com/android/tools/metalava/CompatibilityCheck.kt b/src/main/java/com/android/tools/metalava/CompatibilityCheck.kt
index 6c7cfc2..82ba85b 100644
--- a/src/main/java/com/android/tools/metalava/CompatibilityCheck.kt
+++ b/src/main/java/com/android/tools/metalava/CompatibilityCheck.kt
@@ -18,9 +18,7 @@
 
 import com.android.tools.metalava.NullnessMigration.Companion.findNullnessAnnotation
 import com.android.tools.metalava.NullnessMigration.Companion.isNullable
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.Issues
-import com.android.tools.metalava.doclava1.Issues.Issue
+import com.android.tools.metalava.Issues.Issue
 import com.android.tools.metalava.model.text.TextCodebase
 import com.android.tools.metalava.model.AnnotationItem
 import com.android.tools.metalava.model.ClassItem
diff --git a/src/main/java/com/android/tools/metalava/DocAnalyzer.kt b/src/main/java/com/android/tools/metalava/DocAnalyzer.kt
index fd7fb6d..76d567f 100644
--- a/src/main/java/com/android/tools/metalava/DocAnalyzer.kt
+++ b/src/main/java/com/android/tools/metalava/DocAnalyzer.kt
@@ -7,7 +7,6 @@
 import com.android.tools.lint.checks.ApiLookup
 import com.android.tools.lint.detector.api.editDistance
 import com.android.tools.lint.helpers.DefaultJavaEvaluator
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationAttributeValue
 import com.android.tools.metalava.model.AnnotationItem
 import com.android.tools.metalava.model.ClassItem
diff --git a/src/main/java/com/android/tools/metalava/Driver.kt b/src/main/java/com/android/tools/metalava/Driver.kt
index 23d4a14..cc1dded 100644
--- a/src/main/java/com/android/tools/metalava/Driver.kt
+++ b/src/main/java/com/android/tools/metalava/Driver.kt
@@ -32,9 +32,6 @@
 import com.android.tools.lint.detector.api.assertionsEnabled
 import com.android.tools.metalava.CompatibilityCheck.CheckRequest
 import com.android.tools.metalava.apilevels.ApiGenerator
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.FilterPredicate
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.Item
diff --git a/src/main/java/com/android/tools/metalava/ElidingPredicate.kt b/src/main/java/com/android/tools/metalava/ElidingPredicate.kt
new file mode 100644
index 0000000..1dba9b5
--- /dev/null
+++ b/src/main/java/com/android/tools/metalava/ElidingPredicate.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.tools.metalava
+
+import com.android.tools.metalava.model.Item
+import com.android.tools.metalava.model.MethodItem
+
+import java.util.function.Predicate
+
+/**
+ * Filter that will elide exact duplicate methods that are already included
+ * in another superclass/interfaces.
+ */
+class ElidingPredicate(private val wrapped: Predicate<Item>) : Predicate<Item> {
+
+    override fun test(method: Item): Boolean {
+        // This method should be included, but if it's an exact duplicate
+        // override then we can elide it.
+        return if (method is MethodItem && !method.isConstructor()) {
+            val differentSuper = method.findPredicateSuperMethod(Predicate { test ->
+                // We're looking for included and perfect signature
+                wrapped.test(test) &&
+                    test is MethodItem &&
+                    MethodItem.sameSignature(method, test, false)
+            })
+            differentSuper == null
+        } else {
+            true
+        }
+    }
+}
diff --git a/src/main/java/com/android/tools/metalava/ExtractAnnotations.kt b/src/main/java/com/android/tools/metalava/ExtractAnnotations.kt
index 4acb65f..205c4e4 100644
--- a/src/main/java/com/android/tools/metalava/ExtractAnnotations.kt
+++ b/src/main/java/com/android/tools/metalava/ExtractAnnotations.kt
@@ -19,7 +19,6 @@
 import com.android.SdkConstants
 import com.android.tools.lint.annotations.Extractor
 import com.android.tools.lint.client.api.AnnotationLookup
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationItem
 import com.android.tools.metalava.model.AnnotationTarget
 import com.android.tools.metalava.model.ClassItem
diff --git a/src/main/java/com/android/tools/metalava/doclava1/FilterPredicate.kt b/src/main/java/com/android/tools/metalava/FilterPredicate.kt
similarity index 89%
rename from src/main/java/com/android/tools/metalava/doclava1/FilterPredicate.kt
rename to src/main/java/com/android/tools/metalava/FilterPredicate.kt
index 084c655..842647b 100644
--- a/src/main/java/com/android/tools/metalava/doclava1/FilterPredicate.kt
+++ b/src/main/java/com/android/tools/metalava/FilterPredicate.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,14 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.tools.metalava.doclava1
+package com.android.tools.metalava
 
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.MethodItem
 import java.util.function.Predicate
 
-// Ported from doclava1
-
 class FilterPredicate(private val wrapped: Predicate<Item>) : Predicate<Item> {
 
     override fun test(method: Item): Boolean {
diff --git a/src/main/java/com/android/tools/metalava/doclava1/Issues.kt b/src/main/java/com/android/tools/metalava/Issues.kt
similarity index 90%
rename from src/main/java/com/android/tools/metalava/doclava1/Issues.kt
rename to src/main/java/com/android/tools/metalava/Issues.kt
index 8a46034..dfa4504 100644
--- a/src/main/java/com/android/tools/metalava/doclava1/Issues.kt
+++ b/src/main/java/com/android/tools/metalava/Issues.kt
@@ -1,7 +1,7 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
  *
- * Licensed under the Apache License, Version 2.0 (the "License")
+ * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
@@ -13,10 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.android.tools.metalava.doclava1
+package com.android.tools.metalava
 
 import com.android.sdklib.SdkVersionInfo
-import com.android.tools.metalava.Severity
 import java.util.ArrayList
 import java.util.HashMap
 import java.util.Locale
@@ -131,61 +130,61 @@
     val HIDDEN_ABSTRACT_METHOD = Issue(Severity.ERROR)
 
     // API lint
-    val START_WITH_LOWER = Issue(Severity.ERROR, Category.API_LINT, "S1")
-    val START_WITH_UPPER = Issue(Severity.ERROR, Category.API_LINT, "S1")
-    val ALL_UPPER = Issue(Severity.ERROR, Category.API_LINT, "C2")
-    val ACRONYM_NAME = Issue(Severity.WARNING, Category.API_LINT, "S1")
-    val ENUM = Issue(Severity.ERROR, Category.API_LINT, "F5")
+    val START_WITH_LOWER = Issue(Severity.ERROR, Category.API_LINT)
+    val START_WITH_UPPER = Issue(Severity.ERROR, Category.API_LINT)
+    val ALL_UPPER = Issue(Severity.ERROR, Category.API_LINT)
+    val ACRONYM_NAME = Issue(Severity.WARNING, Category.API_LINT)
+    val ENUM = Issue(Severity.ERROR, Category.API_LINT)
     val ENDS_WITH_IMPL = Issue(Severity.ERROR, Category.API_LINT)
-    val MIN_MAX_CONSTANT = Issue(Severity.WARNING, Category.API_LINT, "C8")
+    val MIN_MAX_CONSTANT = Issue(Severity.WARNING, Category.API_LINT)
     val COMPILE_TIME_CONSTANT = Issue(Severity.ERROR, Category.API_LINT)
-    val SINGULAR_CALLBACK = Issue(Severity.ERROR, Category.API_LINT, "L1")
-    val CALLBACK_NAME = Issue(Severity.WARNING, Category.API_LINT, "L1")
-    val CALLBACK_INTERFACE = Issue(Severity.ERROR, Category.API_LINT, "CL3")
-    val CALLBACK_METHOD_NAME = Issue(Severity.ERROR, Category.API_LINT, "L1")
-    val LISTENER_INTERFACE = Issue(Severity.ERROR, Category.API_LINT, "L1")
-    val SINGLE_METHOD_INTERFACE = Issue(Severity.ERROR, Category.API_LINT, "L1")
-    val INTENT_NAME = Issue(Severity.ERROR, Category.API_LINT, "C3")
-    val ACTION_VALUE = Issue(Severity.ERROR, Category.API_LINT, "C4")
-    val EQUALS_AND_HASH_CODE = Issue(Severity.ERROR, Category.API_LINT, "M8")
-    val PARCEL_CREATOR = Issue(Severity.ERROR, Category.API_LINT, "FW3")
-    val PARCEL_NOT_FINAL = Issue(Severity.ERROR, Category.API_LINT, "FW8")
-    val PARCEL_CONSTRUCTOR = Issue(Severity.ERROR, Category.API_LINT, "FW3")
-    val PROTECTED_MEMBER = Issue(Severity.ERROR, Category.API_LINT, "M7")
-    val PAIRED_REGISTRATION = Issue(Severity.ERROR, Category.API_LINT, "L2")
-    val REGISTRATION_NAME = Issue(Severity.ERROR, Category.API_LINT, "L3")
-    val VISIBLY_SYNCHRONIZED = Issue(Severity.ERROR, Category.API_LINT, "M5")
-    val INTENT_BUILDER_NAME = Issue(Severity.WARNING, Category.API_LINT, "FW1")
-    val CONTEXT_NAME_SUFFIX = Issue(Severity.ERROR, Category.API_LINT, "C4")
-    val INTERFACE_CONSTANT = Issue(Severity.ERROR, Category.API_LINT, "C4")
+    val SINGULAR_CALLBACK = Issue(Severity.ERROR, Category.API_LINT)
+    val CALLBACK_NAME = Issue(Severity.WARNING, Category.API_LINT)
+    val CALLBACK_INTERFACE = Issue(Severity.ERROR, Category.API_LINT)
+    val CALLBACK_METHOD_NAME = Issue(Severity.ERROR, Category.API_LINT)
+    val LISTENER_INTERFACE = Issue(Severity.ERROR, Category.API_LINT)
+    val SINGLE_METHOD_INTERFACE = Issue(Severity.ERROR, Category.API_LINT)
+    val INTENT_NAME = Issue(Severity.ERROR, Category.API_LINT)
+    val ACTION_VALUE = Issue(Severity.ERROR, Category.API_LINT)
+    val EQUALS_AND_HASH_CODE = Issue(Severity.ERROR, Category.API_LINT)
+    val PARCEL_CREATOR = Issue(Severity.ERROR, Category.API_LINT)
+    val PARCEL_NOT_FINAL = Issue(Severity.ERROR, Category.API_LINT)
+    val PARCEL_CONSTRUCTOR = Issue(Severity.ERROR, Category.API_LINT)
+    val PROTECTED_MEMBER = Issue(Severity.ERROR, Category.API_LINT)
+    val PAIRED_REGISTRATION = Issue(Severity.ERROR, Category.API_LINT)
+    val REGISTRATION_NAME = Issue(Severity.ERROR, Category.API_LINT)
+    val VISIBLY_SYNCHRONIZED = Issue(Severity.ERROR, Category.API_LINT)
+    val INTENT_BUILDER_NAME = Issue(Severity.WARNING, Category.API_LINT)
+    val CONTEXT_NAME_SUFFIX = Issue(Severity.ERROR, Category.API_LINT)
+    val INTERFACE_CONSTANT = Issue(Severity.ERROR, Category.API_LINT)
     val ON_NAME_EXPECTED = Issue(Severity.WARNING, Category.API_LINT)
     val TOP_LEVEL_BUILDER = Issue(Severity.WARNING, Category.API_LINT)
     val MISSING_BUILD_METHOD = Issue(Severity.WARNING, Category.API_LINT)
     val BUILDER_SET_STYLE = Issue(Severity.WARNING, Category.API_LINT)
-    val SETTER_RETURNS_THIS = Issue(Severity.WARNING, Category.API_LINT, "M4")
+    val SETTER_RETURNS_THIS = Issue(Severity.WARNING, Category.API_LINT)
     val RAW_AIDL = Issue(Severity.ERROR, Category.API_LINT)
     val INTERNAL_CLASSES = Issue(Severity.ERROR, Category.API_LINT)
-    val PACKAGE_LAYERING = Issue(Severity.WARNING, Category.API_LINT, "FW6")
-    val GETTER_SETTER_NAMES = Issue(Severity.ERROR, Category.API_LINT, "M6")
-    val CONCRETE_COLLECTION = Issue(Severity.ERROR, Category.API_LINT, "CL2")
-    val OVERLAPPING_CONSTANTS = Issue(Severity.WARNING, Category.API_LINT, "C1")
-    val GENERIC_EXCEPTION = Issue(Severity.ERROR, Category.API_LINT, "S1")
-    val ILLEGAL_STATE_EXCEPTION = Issue(Severity.WARNING, Category.API_LINT, "S1")
-    val RETHROW_REMOTE_EXCEPTION = Issue(Severity.ERROR, Category.API_LINT, "FW9")
+    val PACKAGE_LAYERING = Issue(Severity.WARNING, Category.API_LINT)
+    val GETTER_SETTER_NAMES = Issue(Severity.ERROR, Category.API_LINT)
+    val CONCRETE_COLLECTION = Issue(Severity.ERROR, Category.API_LINT)
+    val OVERLAPPING_CONSTANTS = Issue(Severity.WARNING, Category.API_LINT)
+    val GENERIC_EXCEPTION = Issue(Severity.ERROR, Category.API_LINT)
+    val ILLEGAL_STATE_EXCEPTION = Issue(Severity.WARNING, Category.API_LINT)
+    val RETHROW_REMOTE_EXCEPTION = Issue(Severity.ERROR, Category.API_LINT)
     val MENTIONS_GOOGLE = Issue(Severity.ERROR, Category.API_LINT)
     val HEAVY_BIT_SET = Issue(Severity.ERROR, Category.API_LINT)
     val MANAGER_CONSTRUCTOR = Issue(Severity.ERROR, Category.API_LINT)
     val MANAGER_LOOKUP = Issue(Severity.ERROR, Category.API_LINT)
-    val AUTO_BOXING = Issue(Severity.ERROR, Category.API_LINT, "M11")
+    val AUTO_BOXING = Issue(Severity.ERROR, Category.API_LINT)
     val STATIC_UTILS = Issue(Severity.ERROR, Category.API_LINT)
-    val CONTEXT_FIRST = Issue(Severity.ERROR, Category.API_LINT, "M3")
-    val LISTENER_LAST = Issue(Severity.WARNING, Category.API_LINT, "M3")
-    val EXECUTOR_REGISTRATION = Issue(Severity.WARNING, Category.API_LINT, "L1")
+    val CONTEXT_FIRST = Issue(Severity.ERROR, Category.API_LINT)
+    val LISTENER_LAST = Issue(Severity.WARNING, Category.API_LINT)
+    val EXECUTOR_REGISTRATION = Issue(Severity.WARNING, Category.API_LINT)
     val CONFIG_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT)
     val RESOURCE_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT)
-    val RESOURCE_VALUE_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT, "C7")
-    val RESOURCE_STYLE_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT, "C7")
-    val STREAM_FILES = Issue(Severity.WARNING, Category.API_LINT, "M10")
+    val RESOURCE_VALUE_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT)
+    val RESOURCE_STYLE_FIELD_NAME = Issue(Severity.ERROR, Category.API_LINT)
+    val STREAM_FILES = Issue(Severity.WARNING, Category.API_LINT)
     val PARCELABLE_LIST = Issue(Severity.WARNING, Category.API_LINT)
     val ABSTRACT_INNER = Issue(Severity.WARNING, Category.API_LINT)
     val BANNED_THROW = Issue(Severity.ERROR, Category.API_LINT)
@@ -199,27 +198,27 @@
     val ARRAY_RETURN = Issue(Severity.WARNING, Category.API_LINT)
     val USER_HANDLE = Issue(Severity.WARNING, Category.API_LINT)
     val USER_HANDLE_NAME = Issue(Severity.WARNING, Category.API_LINT)
-    val SERVICE_NAME = Issue(Severity.ERROR, Category.API_LINT, "C4")
+    val SERVICE_NAME = Issue(Severity.ERROR, Category.API_LINT)
     val METHOD_NAME_TENSE = Issue(Severity.WARNING, Category.API_LINT)
     val NO_CLONE = Issue(Severity.ERROR, Category.API_LINT)
     val USE_ICU = Issue(Severity.WARNING, Category.API_LINT)
-    val USE_PARCEL_FILE_DESCRIPTOR = Issue(Severity.ERROR, Category.API_LINT, "FW11")
-    val NO_BYTE_OR_SHORT = Issue(Severity.WARNING, Category.API_LINT, "FW12")
+    val USE_PARCEL_FILE_DESCRIPTOR = Issue(Severity.ERROR, Category.API_LINT)
+    val NO_BYTE_OR_SHORT = Issue(Severity.WARNING, Category.API_LINT)
     val SINGLETON_CONSTRUCTOR = Issue(Severity.ERROR, Category.API_LINT)
-    val COMMON_ARGS_FIRST = Issue(Severity.WARNING, Category.API_LINT, "M2")
-    val CONSISTENT_ARGUMENT_ORDER = Issue(Severity.ERROR, Category.API_LINT, "M2")
-    val KOTLIN_KEYWORD = Issue(Severity.ERROR, Category.API_LINT) // Formerly 141
+    val COMMON_ARGS_FIRST = Issue(Severity.WARNING, Category.API_LINT)
+    val CONSISTENT_ARGUMENT_ORDER = Issue(Severity.ERROR, Category.API_LINT)
+    val KOTLIN_KEYWORD = Issue(Severity.ERROR, Category.API_LINT)
     val UNIQUE_KOTLIN_OPERATOR = Issue(Severity.ERROR, Category.API_LINT)
-    val SAM_SHOULD_BE_LAST = Issue(Severity.WARNING, Category.API_LINT) // Formerly 142
-    val MISSING_JVMSTATIC = Issue(Severity.WARNING, Category.API_LINT) // Formerly 143
-    val DEFAULT_VALUE_CHANGE = Issue(Severity.ERROR, Category.API_LINT) // Formerly 144
-    val DOCUMENT_EXCEPTIONS = Issue(Severity.ERROR, Category.API_LINT) // Formerly 145
+    val SAM_SHOULD_BE_LAST = Issue(Severity.WARNING, Category.API_LINT)
+    val MISSING_JVMSTATIC = Issue(Severity.WARNING, Category.API_LINT)
+    val DEFAULT_VALUE_CHANGE = Issue(Severity.ERROR, Category.API_LINT)
+    val DOCUMENT_EXCEPTIONS = Issue(Severity.ERROR, Category.API_LINT)
     val FORBIDDEN_SUPER_CLASS = Issue(Severity.ERROR, Category.API_LINT)
     val MISSING_NULLABILITY = Issue(Severity.ERROR, Category.API_LINT)
-    val MUTABLE_BARE_FIELD = Issue(Severity.ERROR, Category.API_LINT, "F2")
-    val INTERNAL_FIELD = Issue(Severity.ERROR, Category.API_LINT, "F2")
-    val PUBLIC_TYPEDEF = Issue(Severity.ERROR, Category.API_LINT, "FW15")
-    val ANDROID_URI = Issue(Severity.ERROR, Category.API_LINT, "FW14")
+    val MUTABLE_BARE_FIELD = Issue(Severity.ERROR, Category.API_LINT)
+    val INTERNAL_FIELD = Issue(Severity.ERROR, Category.API_LINT)
+    val PUBLIC_TYPEDEF = Issue(Severity.ERROR, Category.API_LINT)
+    val ANDROID_URI = Issue(Severity.ERROR, Category.API_LINT)
     val BAD_FUTURE = Issue(Severity.ERROR, Category.API_LINT)
     val STATIC_FINAL_BUILDER = Issue(Severity.WARNING, Category.API_LINT)
     val GETTER_ON_BUILDER = Issue(Severity.WARNING, Category.API_LINT)
@@ -250,9 +249,7 @@
         /** Applicable category  */
         val category: Category,
         /** Related rule, if any  */
-        val rule: String?,
-        /** Related explanation, if any  */
-        val explanation: String?
+        val rule: String?
     ) {
         /**
          * The name of this issue
@@ -263,18 +260,18 @@
         internal constructor(
             defaultLevel: Severity,
             category: Category = Category.UNKNOWN
-        ) : this(defaultLevel, null, category, null, null)
+        ) : this(defaultLevel, null, category, null)
 
         internal constructor(
             defaultLevel: Severity,
             category: Category,
             rule: String
-        ) : this(defaultLevel, null, category, rule, null)
+        ) : this(defaultLevel, null, category, rule)
 
         internal constructor(
             parent: Issue,
             category: Category
-        ) : this(Severity.INHERIT, parent, category, null, null)
+        ) : this(Severity.INHERIT, parent, category, null)
 
         override fun toString(): String {
             return "Issue $name"
@@ -288,7 +285,7 @@
     enum class Category(val description: String, val ruleLink: String?) {
         COMPATIBILITY("Compatibility", null),
         DOCUMENTATION("Documentation", null),
-        API_LINT("API Lint", "go/android-api-guidelines"),
+        API_LINT("API Lint", null),
         UNKNOWN("Default", null)
     }
 
diff --git a/src/main/java/com/android/tools/metalava/KotlinInteropChecks.kt b/src/main/java/com/android/tools/metalava/KotlinInteropChecks.kt
index 04f644e..8c7d0db 100644
--- a/src/main/java/com/android/tools/metalava/KotlinInteropChecks.kt
+++ b/src/main/java/com/android/tools/metalava/KotlinInteropChecks.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.FieldItem
diff --git a/src/main/java/com/android/tools/metalava/MarkPackagesAsRecent.kt b/src/main/java/com/android/tools/metalava/MarkPackagesAsRecent.kt
index 84353be..2117177 100644
--- a/src/main/java/com/android/tools/metalava/MarkPackagesAsRecent.kt
+++ b/src/main/java/com/android/tools/metalava/MarkPackagesAsRecent.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.ApiPredicate
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.visitors.ApiVisitor
diff --git a/src/main/java/com/android/tools/metalava/NullabilityAnnotationsValidator.kt b/src/main/java/com/android/tools/metalava/NullabilityAnnotationsValidator.kt
index 6ac6491..ee650a7 100644
--- a/src/main/java/com/android/tools/metalava/NullabilityAnnotationsValidator.kt
+++ b/src/main/java/com/android/tools/metalava/NullabilityAnnotationsValidator.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationItem
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.Item
diff --git a/src/main/java/com/android/tools/metalava/Options.kt b/src/main/java/com/android/tools/metalava/Options.kt
index 516bf7f..850d8f4 100644
--- a/src/main/java/com/android/tools/metalava/Options.kt
+++ b/src/main/java/com/android/tools/metalava/Options.kt
@@ -21,7 +21,6 @@
 import com.android.sdklib.SdkVersionInfo
 import com.android.tools.lint.detector.api.isJdkFolder
 import com.android.tools.metalava.CompatibilityCheck.CheckRequest
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.defaultConfiguration
 import com.android.utils.SdkUtils.wrap
 import com.google.common.base.CharMatcher
diff --git a/src/main/java/com/android/tools/metalava/ReleaseType.kt b/src/main/java/com/android/tools/metalava/ReleaseType.kt
index 814cc77..d37cbcf 100644
--- a/src/main/java/com/android/tools/metalava/ReleaseType.kt
+++ b/src/main/java/com/android/tools/metalava/ReleaseType.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.IssueConfiguration
 
 enum class ReleaseType(val flagName: String, private val displayName: String = flagName) {
diff --git a/src/main/java/com/android/tools/metalava/Reporter.kt b/src/main/java/com/android/tools/metalava/Reporter.kt
index 1a4628c..c291168 100644
--- a/src/main/java/com/android/tools/metalava/Reporter.kt
+++ b/src/main/java/com/android/tools/metalava/Reporter.kt
@@ -22,7 +22,6 @@
 import com.android.tools.metalava.Severity.INHERIT
 import com.android.tools.metalava.Severity.LINT
 import com.android.tools.metalava.Severity.WARNING
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.AnnotationArrayAttributeValue
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.configuration
diff --git a/src/main/java/com/android/tools/metalava/doclava1/ElidingPredicate.kt b/src/main/java/com/android/tools/metalava/doclava1/ElidingPredicate.kt
deleted file mode 100644
index 6d091e2..0000000
--- a/src/main/java/com/android/tools/metalava/doclava1/ElidingPredicate.kt
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.android.tools.metalava.doclava1
-
-import com.android.tools.metalava.model.Item
-import com.android.tools.metalava.model.MethodItem
-
-import java.util.function.Predicate
-
-// Ported from doclava1
-
-/**
- * Filter that will elide exact duplicate methods that are already included
- * in another superclass/interfaces.
- */
-class ElidingPredicate(private val wrapped: Predicate<Item>) : Predicate<Item> {
-
-    override fun test(method: Item): Boolean {
-        // This method should be included, but if it's an exact duplicate
-        // override then we can elide it.
-        return if (method is MethodItem && !method.isConstructor()) {
-            val differentSuper = method.findPredicateSuperMethod(Predicate { test ->
-                // We're looking for included and perfect signature
-                wrapped.test(test) &&
-                    test is MethodItem &&
-                    MethodItem.sameSignature(method, test, false)
-            })
-            differentSuper == null
-        } else {
-            true
-        }
-    }
-}
diff --git a/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt b/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
index 37802ad..363d5bf 100644
--- a/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
+++ b/src/main/java/com/android/tools/metalava/model/AnnotationItem.kt
@@ -35,7 +35,7 @@
 import com.android.tools.metalava.Options
 import com.android.tools.metalava.RECENTLY_NONNULL
 import com.android.tools.metalava.RECENTLY_NULLABLE
-import com.android.tools.metalava.doclava1.ApiPredicate
+import com.android.tools.metalava.ApiPredicate
 import com.android.tools.metalava.model.psi.PsiBasedCodebase
 import com.android.tools.metalava.options
 import com.intellij.psi.PsiCallExpression
diff --git a/src/main/java/com/android/tools/metalava/model/Codebase.kt b/src/main/java/com/android/tools/metalava/model/Codebase.kt
index cf3036a..e8a9a58 100644
--- a/src/main/java/com/android/tools/metalava/model/Codebase.kt
+++ b/src/main/java/com/android/tools/metalava/model/Codebase.kt
@@ -23,7 +23,7 @@
 import com.android.SdkConstants.TAG_USES_SDK
 import com.android.tools.metalava.CodebaseComparator
 import com.android.tools.metalava.ComparisonVisitor
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.Issues
 import com.android.tools.metalava.model.psi.CodePrinter
 import com.android.tools.metalava.model.text.TextBackedAnnotationItem
 import com.android.tools.metalava.model.visitors.ItemVisitor
diff --git a/src/main/java/com/android/tools/metalava/model/IssueConfiguration.kt b/src/main/java/com/android/tools/metalava/model/IssueConfiguration.kt
index 6b34b13..8e9a27e 100644
--- a/src/main/java/com/android/tools/metalava/model/IssueConfiguration.kt
+++ b/src/main/java/com/android/tools/metalava/model/IssueConfiguration.kt
@@ -18,7 +18,7 @@
 
 import com.android.tools.metalava.Options
 import com.android.tools.metalava.Severity
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.Issues
 
 /** An issue configuration is a set of overrides for severities for various [Issues.Issue] */
 class IssueConfiguration {
diff --git a/src/main/java/com/android/tools/metalava/model/psi/CodePrinter.kt b/src/main/java/com/android/tools/metalava/model/psi/CodePrinter.kt
index 34485e6..44323b2 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/CodePrinter.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/CodePrinter.kt
@@ -18,7 +18,7 @@
 
 import com.android.SdkConstants.DOT_CLASS
 import com.android.tools.lint.detector.api.ConstantEvaluator
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.Issues
 import com.android.tools.metalava.model.Codebase
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.canonicalizeFloatingPointString
diff --git a/src/main/java/com/android/tools/metalava/model/psi/Javadoc.kt b/src/main/java/com/android/tools/metalava/model/psi/Javadoc.kt
index 6437211..6300dce 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/Javadoc.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/Javadoc.kt
@@ -16,7 +16,7 @@
 
 package com.android.tools.metalava.model.psi
 
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.Issues
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Item
 import com.android.tools.metalava.model.PackageItem
diff --git a/src/main/java/com/android/tools/metalava/model/psi/PsiBasedCodebase.kt b/src/main/java/com/android/tools/metalava/model/psi/PsiBasedCodebase.kt
index ca97060..16579f5 100644
--- a/src/main/java/com/android/tools/metalava/model/psi/PsiBasedCodebase.kt
+++ b/src/main/java/com/android/tools/metalava/model/psi/PsiBasedCodebase.kt
@@ -20,7 +20,7 @@
 import com.android.tools.lint.UastEnvironment
 import com.android.tools.metalava.ANDROIDX_NONNULL
 import com.android.tools.metalava.ANDROIDX_NULLABLE
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.Issues
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.DefaultCodebase
 import com.android.tools.metalava.model.Item
diff --git a/src/main/java/com/android/tools/metalava/model/visitors/ApiVisitor.kt b/src/main/java/com/android/tools/metalava/model/visitors/ApiVisitor.kt
index 8186e08..64aca53 100644
--- a/src/main/java/com/android/tools/metalava/model/visitors/ApiVisitor.kt
+++ b/src/main/java/com/android/tools/metalava/model/visitors/ApiVisitor.kt
@@ -17,7 +17,7 @@
 package com.android.tools.metalava.model.visitors
 
 import com.android.tools.metalava.Options
-import com.android.tools.metalava.doclava1.ApiPredicate
+import com.android.tools.metalava.ApiPredicate
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.FieldItem
 import com.android.tools.metalava.model.Item
diff --git a/src/main/java/com/android/tools/metalava/stub/StubWriter.kt b/src/main/java/com/android/tools/metalava/stub/StubWriter.kt
index fd148fc..adcd125 100644
--- a/src/main/java/com/android/tools/metalava/stub/StubWriter.kt
+++ b/src/main/java/com/android/tools/metalava/stub/StubWriter.kt
@@ -16,9 +16,9 @@
 
 package com.android.tools.metalava.stub
 
-import com.android.tools.metalava.doclava1.ApiPredicate
-import com.android.tools.metalava.doclava1.FilterPredicate
-import com.android.tools.metalava.doclava1.Issues
+import com.android.tools.metalava.ApiPredicate
+import com.android.tools.metalava.FilterPredicate
+import com.android.tools.metalava.Issues
 import com.android.tools.metalava.model.AnnotationTarget
 import com.android.tools.metalava.model.ClassItem
 import com.android.tools.metalava.model.Codebase
diff --git a/src/test/java/com/android/tools/metalava/ApiLintBaselineTest.kt b/src/test/java/com/android/tools/metalava/ApiLintBaselineTest.kt
index 6fce649..09a89ff 100644
--- a/src/test/java/com/android/tools/metalava/ApiLintBaselineTest.kt
+++ b/src/test/java/com/android/tools/metalava/ApiLintBaselineTest.kt
@@ -107,7 +107,7 @@
                     Enums are discouraged in Android APIs
             """,
             expectedIssues = """
-                src/android/pkg/MyEnum.java:3: error: Enums are discouraged in Android APIs [Enum] [Rule F5 in go/android-api-guidelines]
+                src/android/pkg/MyEnum.java:3: error: Enums are discouraged in Android APIs [Enum]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
diff --git a/src/test/java/com/android/tools/metalava/ApiLintTest.kt b/src/test/java/com/android/tools/metalava/ApiLintTest.kt
index 21a204c..49277c1 100644
--- a/src/test/java/com/android/tools/metalava/ApiLintTest.kt
+++ b/src/test/java/com/android/tools/metalava/ApiLintTest.kt
@@ -34,16 +34,16 @@
             ),
             compatibilityMode = false,
             expectedIssues = """
-                src/Dp.kt:3: warning: Acronyms should not be capitalized in method names: was `badCALL`, should this be `badCall`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/ALL_CAPS.java:3: warning: Acronyms should not be capitalized in class names: was `ALL_CAPS`, should this be `AllCaps`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/HTMLWriter.java:3: warning: Acronyms should not be capitalized in class names: was `HTMLWriter`, should this be `HtmlWriter`? [AcronymName] [Rule S1 in go/android-api-guidelines]
+                src/Dp.kt:3: warning: Acronyms should not be capitalized in method names: was `badCALL`, should this be `badCall`? [AcronymName]
+                src/android/pkg/ALL_CAPS.java:3: warning: Acronyms should not be capitalized in class names: was `ALL_CAPS`, should this be `AllCaps`? [AcronymName]
+                src/android/pkg/HTMLWriter.java:3: warning: Acronyms should not be capitalized in class names: was `HTMLWriter`, should this be `HtmlWriter`? [AcronymName]
                 src/android/pkg/MyStringImpl.java:3: error: Don't expose your implementation details: `MyStringImpl` ends with `Impl` [EndsWithImpl]
-                src/android/pkg/badlyNamedClass.java:5: error: Class must start with uppercase char: badlyNamedClass [StartWithUpper] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/badlyNamedClass.java:7: error: Method name must start with lowercase char: BadlyNamedMethod1 [StartWithLower] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/badlyNamedClass.java:9: warning: Acronyms should not be capitalized in method names: was `fromHTMLToHTML`, should this be `fromHtmlToHtml`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/badlyNamedClass.java:10: warning: Acronyms should not be capitalized in method names: was `toXML`, should this be `toXml`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/badlyNamedClass.java:11: warning: Acronyms should not be capitalized in method names: was `getID`, should this be `getId`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/badlyNamedClass.java:6: error: Constant field names must be named with only upper case characters: `android.pkg.badlyNamedClass#BadlyNamedField`, should be `BADLY_NAMED_FIELD`? [AllUpper] [Rule C2 in go/android-api-guidelines]
+                src/android/pkg/badlyNamedClass.java:5: error: Class must start with uppercase char: badlyNamedClass [StartWithUpper]
+                src/android/pkg/badlyNamedClass.java:7: error: Method name must start with lowercase char: BadlyNamedMethod1 [StartWithLower]
+                src/android/pkg/badlyNamedClass.java:9: warning: Acronyms should not be capitalized in method names: was `fromHTMLToHTML`, should this be `fromHtmlToHtml`? [AcronymName]
+                src/android/pkg/badlyNamedClass.java:10: warning: Acronyms should not be capitalized in method names: was `toXML`, should this be `toXml`? [AcronymName]
+                src/android/pkg/badlyNamedClass.java:11: warning: Acronyms should not be capitalized in method names: was `getID`, should this be `getId`? [AcronymName]
+                src/android/pkg/badlyNamedClass.java:6: error: Constant field names must be named with only upper case characters: `android.pkg.badlyNamedClass#BadlyNamedField`, should be `BADLY_NAMED_FIELD`? [AllUpper]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -179,9 +179,9 @@
             """.trimIndent(),
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/badlyNamedClass.java:8: warning: Acronyms should not be capitalized in method names: was `toXML2`, should this be `toXmL2`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg2/HTMLWriter.java:3: warning: Acronyms should not be capitalized in class names: was `HTMLWriter`, should this be `HtmlWriter`? [AcronymName] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg2/HTMLWriter.java:4: warning: Acronyms should not be capitalized in method names: was `fromHTMLToHTML`, should this be `fromHtmlToHtml`? [AcronymName] [Rule S1 in go/android-api-guidelines]
+                src/android/pkg/badlyNamedClass.java:8: warning: Acronyms should not be capitalized in method names: was `toXML2`, should this be `toXmL2`? [AcronymName]
+                src/android/pkg2/HTMLWriter.java:3: warning: Acronyms should not be capitalized in class names: was `HTMLWriter`, should this be `HtmlWriter`? [AcronymName]
+                src/android/pkg2/HTMLWriter.java:4: warning: Acronyms should not be capitalized in method names: was `fromHTMLToHTML`, should this be `fromHtmlToHtml`? [AcronymName]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -218,10 +218,10 @@
             compatibilityMode = false,
             expectedIssues = """
                 src/android/pkg/Constants.java:13: error: All constants must be defined at compile time: android.pkg.Constants#FOO [CompileTimeConstant]
-                src/android/pkg/Constants.java:12: warning: If min/max could change in future, make them dynamic methods: android.pkg.Constants#MAX_FOO [MinMaxConstant] [Rule C8 in go/android-api-guidelines]
-                src/android/pkg/Constants.java:11: warning: If min/max could change in future, make them dynamic methods: android.pkg.Constants#MIN_FOO [MinMaxConstant] [Rule C8 in go/android-api-guidelines]
-                src/android/pkg/Constants.java:9: error: Constant field names must be named with only upper case characters: `android.pkg.Constants#myStrings`, should be `MY_STRINGS`? [AllUpper] [Rule C2 in go/android-api-guidelines]
-                src/android/pkg/Constants.java:7: error: Constant field names must be named with only upper case characters: `android.pkg.Constants#strings`, should be `STRINGS`? [AllUpper] [Rule C2 in go/android-api-guidelines]
+                src/android/pkg/Constants.java:12: warning: If min/max could change in future, make them dynamic methods: android.pkg.Constants#MAX_FOO [MinMaxConstant]
+                src/android/pkg/Constants.java:11: warning: If min/max could change in future, make them dynamic methods: android.pkg.Constants#MIN_FOO [MinMaxConstant]
+                src/android/pkg/Constants.java:9: error: Constant field names must be named with only upper case characters: `android.pkg.Constants#myStrings`, should be `MY_STRINGS`? [AllUpper]
+                src/android/pkg/Constants.java:7: error: Constant field names must be named with only upper case characters: `android.pkg.Constants#strings`, should be `STRINGS`? [AllUpper]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -256,7 +256,7 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyEnum.java:3: error: Enums are discouraged in Android APIs [Enum] [Rule F5 in go/android-api-guidelines]
+                src/android/pkg/MyEnum.java:3: error: Enums are discouraged in Android APIs [Enum]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -279,10 +279,10 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyCallback.java:9: error: Callback method names must follow the on<Something> style: bar [CallbackMethodName] [Rule L1 in go/android-api-guidelines]
-                src/android/pkg/MyCallbacks.java:3: error: Callback class names should be singular: MyCallbacks [SingularCallback] [Rule L1 in go/android-api-guidelines]
-                src/android/pkg/MyInterfaceCallback.java:3: error: Callbacks must be abstract class instead of interface to enable extension in future API levels: MyInterfaceCallback [CallbackInterface] [Rule CL3 in go/android-api-guidelines]
-                src/android/pkg/MyObserver.java:3: warning: Class should be named MyCallback [CallbackName] [Rule L1 in go/android-api-guidelines]
+                src/android/pkg/MyCallback.java:9: error: Callback method names must follow the on<Something> style: bar [CallbackMethodName]
+                src/android/pkg/MyCallbacks.java:3: error: Callback class names should be singular: MyCallbacks [SingularCallback]
+                src/android/pkg/MyInterfaceCallback.java:3: error: Callbacks must be abstract class instead of interface to enable extension in future API levels: MyInterfaceCallback [CallbackInterface]
+                src/android/pkg/MyObserver.java:3: warning: Class should be named MyCallback [CallbackName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -348,8 +348,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClassListener.java:3: error: Listeners should be an interface, or otherwise renamed Callback: MyClassListener [ListenerInterface] [Rule L1 in go/android-api-guidelines]
-                src/android/pkg/MyListener.java:6: error: Listener method names must follow the on<Something> style: bar [CallbackMethodName] [Rule L1 in go/android-api-guidelines]
+                src/android/pkg/MyClassListener.java:3: error: Listeners should be an interface, or otherwise renamed Callback: MyClassListener [ListenerInterface]
+                src/android/pkg/MyListener.java:6: error: Listener method names must follow the on<Something> style: bar [CallbackMethodName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -413,9 +413,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/accounts/Actions.java:7: error: Intent action constant name must be ACTION_FOO: ACCOUNT_ADDED [IntentName] [Rule C3 in go/android-api-guidelines]
-                src/android/accounts/Actions.java:6: error: Inconsistent action value; expected `android.accounts.action.ACCOUNT_OPENED`, was `android.accounts.ACCOUNT_OPENED` [ActionValue] [Rule C4 in go/android-api-guidelines]
-                src/android/accounts/Actions.java:8: error: Intent action constant name must be ACTION_FOO: SOMETHING [IntentName] [Rule C3 in go/android-api-guidelines]
+                src/android/accounts/Actions.java:7: error: Intent action constant name must be ACTION_FOO: ACCOUNT_ADDED [IntentName]
+                src/android/accounts/Actions.java:6: error: Inconsistent action value; expected `android.accounts.action.ACCOUNT_OPENED`, was `android.accounts.ACCOUNT_OPENED` [ActionValue]
+                src/android/accounts/Actions.java:8: error: Intent action constant name must be ACTION_FOO: SOMETHING [IntentName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -442,9 +442,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/accounts/Extras.java:5: error: Inconsistent extra value; expected `android.accounts.extra.AUTOMATIC_RULE_ID`, was `android.app.extra.AUTOMATIC_RULE_ID` [ActionValue] [Rule C4 in go/android-api-guidelines]
-                src/android/accounts/Extras.java:7: error: Intent extra constant name must be EXTRA_FOO: RULE_ID [IntentName] [Rule C3 in go/android-api-guidelines]
-                src/android/accounts/Extras.java:6: error: Intent extra constant name must be EXTRA_FOO: SOMETHING_EXTRA [IntentName] [Rule C3 in go/android-api-guidelines]
+                src/android/accounts/Extras.java:5: error: Inconsistent extra value; expected `android.accounts.extra.AUTOMATIC_RULE_ID`, was `android.app.extra.AUTOMATIC_RULE_ID` [ActionValue]
+                src/android/accounts/Extras.java:7: error: Intent extra constant name must be EXTRA_FOO: RULE_ID [IntentName]
+                src/android/accounts/Extras.java:6: error: Intent extra constant name must be EXTRA_FOO: SOMETHING_EXTRA [IntentName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -470,8 +470,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MissingEquals.java:4: error: Must override both equals and hashCode; missing one in android.pkg.MissingEquals [EqualsAndHashCode] [Rule M8 in go/android-api-guidelines]
-                src/android/pkg/MissingHashCode.java:7: error: Must override both equals and hashCode; missing one in android.pkg.MissingHashCode [EqualsAndHashCode] [Rule M8 in go/android-api-guidelines]
+                src/android/pkg/MissingEquals.java:4: error: Must override both equals and hashCode; missing one in android.pkg.MissingEquals [EqualsAndHashCode]
+                src/android/pkg/MissingHashCode.java:7: error: Must override both equals and hashCode; missing one in android.pkg.MissingHashCode [EqualsAndHashCode]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -534,11 +534,11 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MissingCreator.java:5: error: Parcelable requires a `CREATOR` field; missing in android.pkg.MissingCreator [ParcelCreator] [Rule FW3 in go/android-api-guidelines]
-                src/android/pkg/MissingDescribeContents.java:5: error: Parcelable requires `public int describeContents()`; missing in android.pkg.MissingDescribeContents [ParcelCreator] [Rule FW3 in go/android-api-guidelines]
-                src/android/pkg/MissingWriteToParcel.java:5: error: Parcelable requires `void writeToParcel(Parcel, int)`; missing in android.pkg.MissingWriteToParcel [ParcelCreator] [Rule FW3 in go/android-api-guidelines]
-                src/android/pkg/NonFinalParcelable.java:5: error: Parcelable classes must be final: android.pkg.NonFinalParcelable is not final [ParcelNotFinal] [Rule FW8 in go/android-api-guidelines]
-                src/android/pkg/ParcelableConstructor.java:6: error: Parcelable inflation is exposed through CREATOR, not raw constructors, in android.pkg.ParcelableConstructor [ParcelConstructor] [Rule FW3 in go/android-api-guidelines]
+                src/android/pkg/MissingCreator.java:5: error: Parcelable requires a `CREATOR` field; missing in android.pkg.MissingCreator [ParcelCreator]
+                src/android/pkg/MissingDescribeContents.java:5: error: Parcelable requires `public int describeContents()`; missing in android.pkg.MissingDescribeContents [ParcelCreator]
+                src/android/pkg/MissingWriteToParcel.java:5: error: Parcelable requires `void writeToParcel(Parcel, int)`; missing in android.pkg.MissingWriteToParcel [ParcelCreator]
+                src/android/pkg/NonFinalParcelable.java:5: error: Parcelable classes must be final: android.pkg.NonFinalParcelable is not final [ParcelNotFinal]
+                src/android/pkg/ParcelableConstructor.java:6: error: Parcelable inflation is exposed through CREATOR, not raw constructors, in android.pkg.ParcelableConstructor [ParcelConstructor]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -624,8 +624,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:6: error: Protected methods not allowed; must be public: method android.pkg.MyClass.wrong()} [ProtectedMember] [Rule M7 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:8: error: Protected fields not allowed; must be public: field android.pkg.MyClass.wrong} [ProtectedMember] [Rule M7 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:6: error: Protected methods not allowed; must be public: method android.pkg.MyClass.wrong()} [ProtectedMember]
+                src/android/pkg/MyClass.java:8: error: Protected fields not allowed; must be public: field android.pkg.MyClass.wrong} [ProtectedMember]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -653,17 +653,17 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:11: error: Non-static field ALSO_BAD_CONSTANT must be named using fooBar style [StartWithLower] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:11: error: Constant ALSO_BAD_CONSTANT must be marked static final [AllUpper] [Rule C2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:7: error: Non-static field AlsoBadName must be named using fooBar style [StartWithLower] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: error: Bare field BAD_CONSTANT must be marked final, or moved behind accessors if mutable [MutableBareField] [Rule F2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: error: Constant BAD_CONSTANT must be marked static final [AllUpper] [Rule C2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:5: error: Bare field badMutable must be marked final, or moved behind accessors if mutable [MutableBareField] [Rule F2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:9: error: Bare field badStaticMutable must be marked final, or moved behind accessors if mutable [MutableBareField] [Rule F2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:6: error: Internal field mBadName must not be exposed [InternalField] [Rule F2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:8: error: Constant field names must be named with only upper case characters: `android.pkg.MyClass#sBadStaticName`, should be `S_BAD_STATIC_NAME`? [AllUpper] [Rule C2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:8: error: Internal field sBadStaticName must not be exposed [InternalField] [Rule F2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:15: error: Internal field mBad must not be exposed [InternalField] [Rule F2 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:11: error: Non-static field ALSO_BAD_CONSTANT must be named using fooBar style [StartWithLower]
+                src/android/pkg/MyClass.java:11: error: Constant ALSO_BAD_CONSTANT must be marked static final [AllUpper]
+                src/android/pkg/MyClass.java:7: error: Non-static field AlsoBadName must be named using fooBar style [StartWithLower]
+                src/android/pkg/MyClass.java:10: error: Bare field BAD_CONSTANT must be marked final, or moved behind accessors if mutable [MutableBareField]
+                src/android/pkg/MyClass.java:10: error: Constant BAD_CONSTANT must be marked static final [AllUpper]
+                src/android/pkg/MyClass.java:5: error: Bare field badMutable must be marked final, or moved behind accessors if mutable [MutableBareField]
+                src/android/pkg/MyClass.java:9: error: Bare field badStaticMutable must be marked final, or moved behind accessors if mutable [MutableBareField]
+                src/android/pkg/MyClass.java:6: error: Internal field mBadName must not be exposed [InternalField]
+                src/android/pkg/MyClass.java:8: error: Constant field names must be named with only upper case characters: `android.pkg.MyClass#sBadStaticName`, should be `S_BAD_STATIC_NAME`? [AllUpper]
+                src/android/pkg/MyClass.java:8: error: Internal field sBadStaticName must not be exposed [InternalField]
+                src/android/pkg/MyClass.java:15: error: Internal field mBad must not be exposed [InternalField]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -698,9 +698,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:7: error: Use android.net.Uri instead of java.net.URL (method android.pkg.MyClass.bad1()) [AndroidUri] [Rule FW14 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:8: error: Use android.net.Uri instead of java.net.URI (parameter param in android.pkg.MyClass.bad2(java.util.List<java.net.URI> param)) [AndroidUri] [Rule FW14 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:9: error: Use android.net.Uri instead of android.net.URL (parameter param in android.pkg.MyClass.bad3(android.net.URL param)) [AndroidUri] [Rule FW14 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:7: error: Use android.net.Uri instead of java.net.URL (method android.pkg.MyClass.bad1()) [AndroidUri]
+                src/android/pkg/MyClass.java:8: error: Use android.net.Uri instead of java.net.URI (parameter param in android.pkg.MyClass.bad2(java.util.List<java.net.URI> param)) [AndroidUri]
+                src/android/pkg/MyClass.java:9: error: Use android.net.Uri instead of android.net.URL (parameter param in android.pkg.MyClass.bad3(android.net.URL param)) [AndroidUri]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -784,9 +784,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:15: error: Don't expose @IntDef: SomeInt must be hidden. [PublicTypedef] [Rule FW15 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:20: error: Don't expose @LongDef: SomeLong must be hidden. [PublicTypedef] [Rule FW15 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: error: Don't expose @StringDef: SomeString must be hidden. [PublicTypedef] [Rule FW15 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:15: error: Don't expose @IntDef: SomeInt must be hidden. [PublicTypedef]
+                src/android/pkg/MyClass.java:20: error: Don't expose @LongDef: SomeLong must be hidden. [PublicTypedef]
+                src/android/pkg/MyClass.java:10: error: Don't expose @StringDef: SomeString must be hidden. [PublicTypedef]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -829,13 +829,13 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/RegistrationInterface.java:6: error: Found registerOverriddenUnpairedCallback but not unregisterOverriddenUnpairedCallback in android.pkg.RegistrationInterface [PairedRegistration] [Rule L2 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:8: error: Found registerUnpairedCallback but not unregisterUnpairedCallback in android.pkg.RegistrationMethods [PairedRegistration] [Rule L2 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:12: error: Found unregisterMismatchedCallback but not registerMismatchedCallback in android.pkg.RegistrationMethods [PairedRegistration] [Rule L2 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:13: error: Callback methods should be named register/unregister; was addCallback [RegistrationName] [Rule L3 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:18: error: Found addUnpairedListener but not removeUnpairedListener in android.pkg.RegistrationMethods [PairedRegistration] [Rule L2 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:19: error: Found removeMismatchedListener but not addMismatchedListener in android.pkg.RegistrationMethods [PairedRegistration] [Rule L2 in go/android-api-guidelines]
-                src/android/pkg/RegistrationMethods.java:20: error: Listener methods should be named add/remove; was registerWrongListener [RegistrationName] [Rule L3 in go/android-api-guidelines]
+                src/android/pkg/RegistrationInterface.java:6: error: Found registerOverriddenUnpairedCallback but not unregisterOverriddenUnpairedCallback in android.pkg.RegistrationInterface [PairedRegistration]
+                src/android/pkg/RegistrationMethods.java:8: error: Found registerUnpairedCallback but not unregisterUnpairedCallback in android.pkg.RegistrationMethods [PairedRegistration]
+                src/android/pkg/RegistrationMethods.java:12: error: Found unregisterMismatchedCallback but not registerMismatchedCallback in android.pkg.RegistrationMethods [PairedRegistration]
+                src/android/pkg/RegistrationMethods.java:13: error: Callback methods should be named register/unregister; was addCallback [RegistrationName]
+                src/android/pkg/RegistrationMethods.java:18: error: Found addUnpairedListener but not removeUnpairedListener in android.pkg.RegistrationMethods [PairedRegistration]
+                src/android/pkg/RegistrationMethods.java:19: error: Found removeMismatchedListener but not addMismatchedListener in android.pkg.RegistrationMethods [PairedRegistration]
+                src/android/pkg/RegistrationMethods.java:20: error: Listener methods should be named add/remove; was registerWrongListener [RegistrationName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -886,15 +886,15 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/CheckSynchronization.java:12: error: Internal locks must not be exposed: method android.pkg.CheckSynchronization.errorMethod1(Runnable) [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization.java:14: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod2() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization.java:18: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod2() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization.java:23: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod3() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization2.kt:5: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod1() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization2.kt:8: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod2() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization2.kt:13: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod3() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization2.kt:16: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod4() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
-                src/android/pkg/CheckSynchronization2.kt:18: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod5() [VisiblySynchronized] [Rule M5 in go/android-api-guidelines]
+                src/android/pkg/CheckSynchronization.java:12: error: Internal locks must not be exposed: method android.pkg.CheckSynchronization.errorMethod1(Runnable) [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization.java:14: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod2() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization.java:18: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod2() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization.java:23: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization.errorMethod3() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization2.kt:5: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod1() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization2.kt:8: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod2() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization2.kt:13: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod3() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization2.kt:16: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod4() [VisiblySynchronized]
+                src/android/pkg/CheckSynchronization2.kt:18: error: Internal locks must not be exposed (synchronizing on this or class is still externally observable): method android.pkg.CheckSynchronization2.errorMethod5() [VisiblySynchronized]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -969,8 +969,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/IntentBuilderNames.java:8: warning: Methods creating an Intent should be named `create<Foo>Intent()`, was `makeMyIntent` [IntentBuilderName] [Rule FW1 in go/android-api-guidelines]
-                src/android/pkg/IntentBuilderNames.java:10: warning: Methods creating an Intent should be named `create<Foo>Intent()`, was `createIntentNow` [IntentBuilderName] [Rule FW1 in go/android-api-guidelines]
+                src/android/pkg/IntentBuilderNames.java:8: warning: Methods creating an Intent should be named `create<Foo>Intent()`, was `makeMyIntent` [IntentBuilderName]
+                src/android/pkg/IntentBuilderNames.java:10: warning: Methods creating an Intent should be named `create<Foo>Intent()`, was `createIntentNow` [IntentBuilderName]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1000,13 +1000,13 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass1.java:3: error: Inconsistent class name; should be `<Foo>Activity`, was `MyClass1` [ContextNameSuffix] [Rule C4 in go/android-api-guidelines]
+                src/android/pkg/MyClass1.java:3: error: Inconsistent class name; should be `<Foo>Activity`, was `MyClass1` [ContextNameSuffix]
                 src/android/pkg/MyClass1.java:6: warning: Methods implemented by developers should follow the on<Something> style, was `badlyNamedAbstractMethod` [OnNameExpected]
                 src/android/pkg/MyClass1.java:7: warning: If implemented by developer, should follow the on<Something> style; otherwise consider marking final [OnNameExpected]
                 src/android/pkg/MyClass1.java:3: error: MyClass1 should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead. [ForbiddenSuperClass]
-                src/android/pkg/MyClass2.java:3: error: Inconsistent class name; should be `<Foo>Provider`, was `MyClass2` [ContextNameSuffix] [Rule C4 in go/android-api-guidelines]
-                src/android/pkg/MyClass3.java:3: error: Inconsistent class name; should be `<Foo>Service`, was `MyClass3` [ContextNameSuffix] [Rule C4 in go/android-api-guidelines]
-                src/android/pkg/MyClass4.java:3: error: Inconsistent class name; should be `<Foo>Receiver`, was `MyClass4` [ContextNameSuffix] [Rule C4 in go/android-api-guidelines]
+                src/android/pkg/MyClass2.java:3: error: Inconsistent class name; should be `<Foo>Provider`, was `MyClass2` [ContextNameSuffix]
+                src/android/pkg/MyClass3.java:3: error: Inconsistent class name; should be `<Foo>Service`, was `MyClass3` [ContextNameSuffix]
+                src/android/pkg/MyClass4.java:3: error: Inconsistent class name; should be `<Foo>Receiver`, was `MyClass4` [ContextNameSuffix]
                 src/android/pkg/MyOkActivity.java:3: error: MyOkActivity should not extend `Activity`. Activity subclasses are impossible to compose. Expose a composable API instead. [ForbiddenSuperClass]
                 """,
             expectedFail = DefaultLintErrorMessage,
@@ -1074,13 +1074,13 @@
                 src/android/pkg/Bad.java:12: warning: Builder must be static: android.pkg.Bad.BadBuilder [StaticFinalBuilder]
                 src/android/pkg/Bad.java:13: warning: Builder constructor arguments must be mandatory (i.e. not @Nullable): parameter badParameter in android.pkg.Bad.BadBuilder(String badParameter) [OptionalBuilderConstructorArgument]
                 src/android/pkg/Bad.java:24: warning: Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.pkg.Bad.BadBuilder.withBadSetterStyle(boolean) [BuilderSetStyle]
-                src/android/pkg/Bad.java:27: warning: Builder setter must be @NonNull: method android.pkg.Bad.BadBuilder.setReturnsNullable(boolean) [SetterReturnsThis] [Rule M4 in go/android-api-guidelines]
+                src/android/pkg/Bad.java:27: warning: Builder setter must be @NonNull: method android.pkg.Bad.BadBuilder.setReturnsNullable(boolean) [SetterReturnsThis]
                 src/android/pkg/Bad.java:30: warning: Getter should be on the built object, not the builder: method android.pkg.Bad.BadBuilder.getOnBuilder() [GetterOnBuilder]
-                src/android/pkg/Bad.java:32: warning: Methods must return the builder object (return type android.pkg.Bad.BadBuilder instead of void): method android.pkg.Bad.BadBuilder.setNotReturningBuilder(boolean) [SetterReturnsThis] [Rule M4 in go/android-api-guidelines]
+                src/android/pkg/Bad.java:32: warning: Methods must return the builder object (return type android.pkg.Bad.BadBuilder instead of void): method android.pkg.Bad.BadBuilder.setNotReturningBuilder(boolean) [SetterReturnsThis]
                 src/android/pkg/Bad.java:18: warning: android.pkg.Bad does not declare a `getWithoutMatchingGetters()` method matching method android.pkg.Bad.BadBuilder.addWithoutMatchingGetter(String) [MissingGetterMatchingBuilder]
                 src/android/pkg/Bad.java:21: warning: android.pkg.Bad does not declare a `isWithoutMatchingGetter()` method matching method android.pkg.Bad.BadBuilder.setWithoutMatchingGetter(boolean) [MissingGetterMatchingBuilder]
                 src/android/pkg/Bad.java:32: warning: android.pkg.Bad does not declare a `isNotReturningBuilder()` method matching method android.pkg.Bad.BadBuilder.setNotReturningBuilder(boolean) [MissingGetterMatchingBuilder]
-                src/android/pkg/Bad.java:43: warning: Methods must return the builder object (return type android.pkg.Bad.BadGenericBuilder<T> instead of T): method android.pkg.Bad.BadGenericBuilder.setBoolean(boolean) [SetterReturnsThis] [Rule M4 in go/android-api-guidelines]
+                src/android/pkg/Bad.java:43: warning: Methods must return the builder object (return type android.pkg.Bad.BadGenericBuilder<T> instead of T): method android.pkg.Bad.BadGenericBuilder.setBoolean(boolean) [SetterReturnsThis]
                 src/android/pkg/Bad.java:38: warning: android.pkg.Bad.NoBuildMethodBuilder does not declare a `build()` method, but builder classes are expected to [MissingBuildMethod]
                 src/android/pkg/TopLevelBuilder.java:3: warning: Builder should be defined as inner class: android.pkg.TopLevelBuilder [TopLevelBuilder]
                 src/android/pkg/TopLevelBuilder.java:3: warning: android.pkg.TopLevelBuilder does not declare a `build()` method, but builder classes are expected to [MissingBuildMethod]
@@ -1297,10 +1297,10 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/content/MyClass1.java:8: warning: Field type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering] [Rule FW6 in go/android-api-guidelines]
-                src/android/content/MyClass1.java:8: warning: Method return type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering] [Rule FW6 in go/android-api-guidelines]
-                src/android/content/MyClass1.java:8: warning: Method parameter type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering] [Rule FW6 in go/android-api-guidelines]
-                src/android/content/MyClass1.java:8: warning: Method parameter type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering] [Rule FW6 in go/android-api-guidelines]
+                src/android/content/MyClass1.java:8: warning: Field type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering]
+                src/android/content/MyClass1.java:8: warning: Method return type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering]
+                src/android/content/MyClass1.java:8: warning: Method parameter type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering]
+                src/android/content/MyClass1.java:8: warning: Method parameter type `android.view.View` violates package layering: nothing in `package android.content` should depend on `package android.view` [PackageLayering]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1337,13 +1337,13 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                    src/android/pkg/MyClass.java:20: error: Symmetric method for `isVisibleBad` must be named `setVisibleBad`; was `setIsVisibleBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:24: error: Symmetric method for `hasTransientStateBad` must be named `setHasTransientStateBad`; was `setTransientStateBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:28: error: Symmetric method for `setHasTransientStateAlsoBad` must be named `hasTransientStateAlsoBad`; was `isHasTransientStateAlsoBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:31: error: Symmetric method for `setCanRecordBad` must be named `canRecordBad`; was `isCanRecordBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:34: error: Symmetric method for `setShouldFitWidthBad` must be named `shouldFitWidthBad`; was `isShouldFitWidthBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:37: error: Symmetric method for `setWiFiRoamingSettingEnabledBad` must be named `isWiFiRoamingSettingEnabledBad`; was `getWiFiRoamingSettingEnabledBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
-                    src/android/pkg/MyClass.java:40: error: Symmetric method for `setEnabledBad` must be named `isEnabledBad`; was `getEnabledBad` [GetterSetterNames] [Rule M6 in go/android-api-guidelines]
+                    src/android/pkg/MyClass.java:20: error: Symmetric method for `isVisibleBad` must be named `setVisibleBad`; was `setIsVisibleBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:24: error: Symmetric method for `hasTransientStateBad` must be named `setHasTransientStateBad`; was `setTransientStateBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:28: error: Symmetric method for `setHasTransientStateAlsoBad` must be named `hasTransientStateAlsoBad`; was `isHasTransientStateAlsoBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:31: error: Symmetric method for `setCanRecordBad` must be named `canRecordBad`; was `isCanRecordBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:34: error: Symmetric method for `setShouldFitWidthBad` must be named `shouldFitWidthBad`; was `isShouldFitWidthBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:37: error: Symmetric method for `setWiFiRoamingSettingEnabledBad` must be named `isWiFiRoamingSettingEnabledBad`; was `getWiFiRoamingSettingEnabledBad` [GetterSetterNames]
+                    src/android/pkg/MyClass.java:40: error: Symmetric method for `setEnabledBad` must be named `isEnabledBad`; was `getEnabledBad` [GetterSetterNames]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1402,9 +1402,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:6: error: Parameter type is concrete collection (`java.util.HashMap`); must be higher-level interface [ConcreteCollection] [Rule CL2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:9: error: Return type is concrete collection (`java.util.Vector`); must be higher-level interface [ConcreteCollection] [Rule CL2 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: error: Parameter type is concrete collection (`java.util.LinkedList`); must be higher-level interface [ConcreteCollection] [Rule CL2 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:6: error: Parameter type is concrete collection (`java.util.HashMap`); must be higher-level interface [ConcreteCollection]
+                src/android/pkg/MyClass.java:9: error: Return type is concrete collection (`java.util.Vector`); must be higher-level interface [ConcreteCollection]
+                src/android/pkg/MyClass.java:10: error: Parameter type is concrete collection (`java.util.LinkedList`); must be higher-level interface [ConcreteCollection]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1436,7 +1436,7 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/accounts/OverlappingFlags.java:19: warning: Found overlapping flag constant values: `TEST1_FLAG_SECOND` with value 3 (0x3) and overlapping flag value 1 (0x1) from `TEST1_FLAG_FIRST` [OverlappingConstants] [Rule C1 in go/android-api-guidelines]
+                src/android/accounts/OverlappingFlags.java:19: warning: Found overlapping flag constant values: `TEST1_FLAG_SECOND` with value 3 (0x3) and overlapping flag value 1 (0x1) from `TEST1_FLAG_FIRST` [OverlappingConstants]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1478,12 +1478,12 @@
             ),
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:6: error: Methods must not throw generic exceptions (`java.lang.Exception`) [GenericException] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:7: error: Methods must not throw generic exceptions (`java.lang.Throwable`) [GenericException] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:8: error: Methods must not throw generic exceptions (`java.lang.Error`) [GenericException] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:9: warning: Methods taking no arguments should throw `IllegalStateException` instead of `java.lang.IllegalArgumentException` [IllegalStateException] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: warning: Methods taking no arguments should throw `IllegalStateException` instead of `java.lang.NullPointerException` [IllegalStateException] [Rule S1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:11: error: Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause) [RethrowRemoteException] [Rule FW9 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:6: error: Methods must not throw generic exceptions (`java.lang.Exception`) [GenericException]
+                src/android/pkg/MyClass.java:7: error: Methods must not throw generic exceptions (`java.lang.Throwable`) [GenericException]
+                src/android/pkg/MyClass.java:8: error: Methods must not throw generic exceptions (`java.lang.Error`) [GenericException]
+                src/android/pkg/MyClass.java:9: warning: Methods taking no arguments should throw `IllegalStateException` instead of `java.lang.IllegalArgumentException` [IllegalStateException]
+                src/android/pkg/MyClass.java:10: warning: Methods taking no arguments should throw `IllegalStateException` instead of `java.lang.NullPointerException` [IllegalStateException]
+                src/android/pkg/MyClass.java:11: error: Methods calling system APIs should rethrow `RemoteException` as `RuntimeException` (but do not list it in the throws clause) [RethrowRemoteException]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1613,10 +1613,10 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:9: error: Must avoid boxed primitives (`java.lang.Long`) [AutoBoxing] [Rule M11 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:11: error: Must avoid boxed primitives (`java.lang.Short`) [AutoBoxing] [Rule M11 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:12: error: Must avoid boxed primitives (`java.lang.Double`) [AutoBoxing] [Rule M11 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:6: error: Must avoid boxed primitives (`java.lang.Integer`) [AutoBoxing] [Rule M11 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:9: error: Must avoid boxed primitives (`java.lang.Long`) [AutoBoxing]
+                src/android/pkg/MyClass.java:11: error: Must avoid boxed primitives (`java.lang.Short`) [AutoBoxing]
+                src/android/pkg/MyClass.java:12: error: Must avoid boxed primitives (`java.lang.Double`) [AutoBoxing]
+                src/android/pkg/MyClass.java:6: error: Must avoid boxed primitives (`java.lang.Integer`) [AutoBoxing]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1714,8 +1714,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:11: error: Context is distinct, so it must be the first argument (method `wrong`) [ContextFirst] [Rule M3 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:12: error: ContentResolver is distinct, so it must be the first argument (method `wrong`) [ContextFirst] [Rule M3 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:11: error: Context is distinct, so it must be the first argument (method `wrong`) [ContextFirst]
+                src/android/pkg/MyClass.java:12: error: ContentResolver is distinct, so it must be the first argument (method `wrong`) [ContextFirst]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1747,8 +1747,8 @@
             extraArguments = arrayOf(ARG_API_LINT, ARG_HIDE, "ExecutorRegistration"),
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:7: warning: Listeners should always be at end of argument list (method `MyClass`) [ListenerLast] [Rule M3 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:10: warning: Listeners should always be at end of argument list (method `wrong`) [ListenerLast] [Rule M3 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:7: warning: Listeners should always be at end of argument list (method `MyClass`) [ListenerLast]
+                src/android/pkg/MyClass.java:10: warning: Listeners should always be at end of argument list (method `wrong`) [ListenerLast]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1829,8 +1829,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/MyClass.java:16: warning: Registration methods should have overload that accepts delivery Executor: `registerWrongCallback` [ExecutorRegistration] [Rule L1 in go/android-api-guidelines]
-                src/android/pkg/MyClass.java:6: warning: Registration methods should have overload that accepts delivery Executor: `MyClass` [ExecutorRegistration] [Rule L1 in go/android-api-guidelines]
+                src/android/pkg/MyClass.java:16: warning: Registration methods should have overload that accepts delivery Executor: `registerWrongCallback` [ExecutorRegistration]
+                src/android/pkg/MyClass.java:6: warning: Registration methods should have overload that accepts delivery Executor: `MyClass` [ExecutorRegistration]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1888,10 +1888,10 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/R.java:11: error: Expected resource name in `android.R.id` to be in the `fooBarBaz` style, was `wrong_style` [ResourceValueFieldName] [Rule C7 in go/android-api-guidelines]
+                src/android/R.java:11: error: Expected resource name in `android.R.id` to be in the `fooBarBaz` style, was `wrong_style` [ResourceValueFieldName]
                 src/android/R.java:17: error: Expected config name to be in the `config_fooBarBaz` style, was `config_wrong_config_style` [ConfigFieldName]
                 src/android/R.java:20: error: Expected resource name in `android.R.layout` to be in the `foo_bar_baz` style, was `wrongNameStyle` [ResourceFieldName]
-                src/android/R.java:31: error: Expected resource name in `android.R.style` to be in the `FooBar_Baz` style, was `wrong_style_name` [ResourceStyleFieldName] [Rule C7 in go/android-api-guidelines]
+                src/android/R.java:31: error: Expected resource name in `android.R.style` to be in the `FooBar_Baz` style, was `wrong_style_name` [ResourceStyleFieldName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -1942,8 +1942,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/CheckFiles.java:13: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: method android.pkg.CheckFiles.error(int,java.io.File) [StreamFiles] [Rule M10 in go/android-api-guidelines]
-                src/android/pkg/CheckFiles.java:9: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: constructor android.pkg.CheckFiles(android.content.Context,java.io.File) [StreamFiles] [Rule M10 in go/android-api-guidelines]
+                src/android/pkg/CheckFiles.java:13: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: method android.pkg.CheckFiles.error(int,java.io.File) [StreamFiles]
+                src/android/pkg/CheckFiles.java:9: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: constructor android.pkg.CheckFiles(android.content.Context,java.io.File) [StreamFiles]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -1975,8 +1975,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/CheckFiles.java:13: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: method android.pkg.CheckFiles.error(int,java.io.File) [StreamFiles] [Rule M10 in go/android-api-guidelines]
-                src/android/pkg/CheckFiles.java:9: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: constructor android.pkg.CheckFiles(android.content.Context,java.io.File) [StreamFiles] [Rule M10 in go/android-api-guidelines]
+                src/android/pkg/CheckFiles.java:13: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: method android.pkg.CheckFiles.error(int,java.io.File) [StreamFiles]
+                src/android/pkg/CheckFiles.java:9: warning: Methods accepting `File` should also accept `FileDescriptor` or streams: constructor android.pkg.CheckFiles(android.content.Context,java.io.File) [StreamFiles]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -2520,9 +2520,9 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/content/Context.java:11: error: Inconsistent service constant name; expected `SOMETHING_SERVICE`, was `OTHER_MANAGER` [ServiceName] [Rule C4 in go/android-api-guidelines]
-                src/android/content/Context.java:12: error: Inconsistent service constant name; expected `OTHER_SERVICE`, was `OTHER_MANAGER_SERVICE` [ServiceName] [Rule C4 in go/android-api-guidelines]
-                src/android/content/Context.java:9: error: Inconsistent service value; expected `other`, was `something` (Note: Do not change the name of already released services, which will break tools using `adb shell dumpsys`. Instead add `@SuppressLint("ServiceName"))` [ServiceName] [Rule C4 in go/android-api-guidelines]
+                src/android/content/Context.java:11: error: Inconsistent service constant name; expected `SOMETHING_SERVICE`, was `OTHER_MANAGER` [ServiceName]
+                src/android/content/Context.java:12: error: Inconsistent service constant name; expected `OTHER_SERVICE`, was `OTHER_MANAGER_SERVICE` [ServiceName]
+                src/android/content/Context.java:9: error: Inconsistent service value; expected `other`, was `something` (Note: Do not change the name of already released services, which will break tools using `adb shell dumpsys`. Instead add `@SuppressLint("ServiceName"))` [ServiceName]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -2651,8 +2651,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/PdfTest.java:6: error: Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in android.pkg.PdfTest.error1(java.io.FileDescriptor fd) [UseParcelFileDescriptor] [Rule FW11 in go/android-api-guidelines]
-                src/android/pkg/PdfTest.java:7: error: Must use ParcelFileDescriptor instead of FileDescriptor in method android.pkg.PdfTest.getFileDescriptor() [UseParcelFileDescriptor] [Rule FW11 in go/android-api-guidelines]
+                src/android/pkg/PdfTest.java:6: error: Must use ParcelFileDescriptor instead of FileDescriptor in parameter fd in android.pkg.PdfTest.error1(java.io.FileDescriptor fd) [UseParcelFileDescriptor]
+                src/android/pkg/PdfTest.java:7: error: Must use ParcelFileDescriptor instead of FileDescriptor in method android.pkg.PdfTest.getFileDescriptor() [UseParcelFileDescriptor]
                 """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -2704,8 +2704,8 @@
             apiLint = "", // enabled
             compatibilityMode = false,
             expectedIssues = """
-                src/android/pkg/ByteTest.java:4: warning: Should avoid odd sized primitives; use `int` instead of `byte` in parameter b in android.pkg.ByteTest.error1(byte b) [NoByteOrShort] [Rule FW12 in go/android-api-guidelines]
-                src/android/pkg/ByteTest.java:5: warning: Should avoid odd sized primitives; use `int` instead of `short` in parameter s in android.pkg.ByteTest.error2(short s) [NoByteOrShort] [Rule FW12 in go/android-api-guidelines]
+                src/android/pkg/ByteTest.java:4: warning: Should avoid odd sized primitives; use `int` instead of `byte` in parameter b in android.pkg.ByteTest.error1(byte b) [NoByteOrShort]
+                src/android/pkg/ByteTest.java:5: warning: Should avoid odd sized primitives; use `int` instead of `short` in parameter s in android.pkg.ByteTest.error2(short s) [NoByteOrShort]
                 """,
             sourceFiles = arrayOf(
                 java(
@@ -3056,7 +3056,7 @@
             ),
             expectedIssues = """
                 src/android/provider/Settings.java:9: error: New setting keys are not allowed (Field: BAD1); use getters/setters in relevant manager class [NoSettingsProvider]
-                src/android/provider/Settings.java:11: error: Bare field okay2 must be marked final, or moved behind accessors if mutable [MutableBareField] [Rule F2 in go/android-api-guidelines]
+                src/android/provider/Settings.java:11: error: Bare field okay2 must be marked final, or moved behind accessors if mutable [MutableBareField]
                 src/android/provider/Settings.java:17: error: New setting keys are not allowed (Field: BAD1); use getters/setters in relevant manager class [NoSettingsProvider]
                 src/android/provider/Settings.java:21: error: New setting keys are not allowed (Field: BAD1); use getters/setters in relevant manager class [NoSettingsProvider]
             """,
diff --git a/src/test/java/com/android/tools/metalava/OptionsTest.kt b/src/test/java/com/android/tools/metalava/OptionsTest.kt
index 73bd845..fcb4770 100644
--- a/src/test/java/com/android/tools/metalava/OptionsTest.kt
+++ b/src/test/java/com/android/tools/metalava/OptionsTest.kt
@@ -16,7 +16,6 @@
 
 package com.android.tools.metalava
 
-import com.android.tools.metalava.doclava1.Issues
 import com.android.tools.metalava.model.defaultConfiguration
 import org.junit.Assert.assertEquals
 import org.junit.Assert.assertFalse
diff --git a/src/test/java/com/android/tools/metalava/ReporterTest.kt b/src/test/java/com/android/tools/metalava/ReporterTest.kt
index 0ac9a4b..62a231a 100644
--- a/src/test/java/com/android/tools/metalava/ReporterTest.kt
+++ b/src/test/java/com/android/tools/metalava/ReporterTest.kt
@@ -24,11 +24,11 @@
         check(
             apiLint = "",
             expectedIssues = """
-                src/test/pkg/foo.java:2: error: Class must start with uppercase char: foo [StartWithUpper] [Rule S1 in go/android-api-guidelines]
-                src/test/pkg/foo.java:4: warning: If min/max could change in future, make them dynamic methods: test.pkg.foo#MAX_BAR [MinMaxConstant] [Rule C8 in go/android-api-guidelines]
+                src/test/pkg/foo.java:2: error: Class must start with uppercase char: foo [StartWithUpper]
+                src/test/pkg/foo.java:4: warning: If min/max could change in future, make them dynamic methods: test.pkg.foo#MAX_BAR [MinMaxConstant]
             """,
             errorSeverityExpectedIssues = """
-                src/test/pkg/foo.java:2: error: Class must start with uppercase char: foo [StartWithUpper] [Rule S1 in go/android-api-guidelines]
+                src/test/pkg/foo.java:2: error: Class must start with uppercase char: foo [StartWithUpper]
             """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
@@ -50,8 +50,8 @@
         check(
             apiLint = "",
             expectedIssues = """
-                src/test/pkg/Bar.kt:10: error: Method name must start with lowercase char: Unsuppressed [StartWithLower] [Rule S1 in go/android-api-guidelines]
-                src/test/pkg/Foo.java:10: error: Method name must start with lowercase char: Unsuppressed [StartWithLower] [Rule S1 in go/android-api-guidelines]
+                src/test/pkg/Bar.kt:10: error: Method name must start with lowercase char: Unsuppressed [StartWithLower]
+                src/test/pkg/Foo.java:10: error: Method name must start with lowercase char: Unsuppressed [StartWithLower]
             """,
             expectedFail = DefaultLintErrorMessage,
             sourceFiles = arrayOf(
diff --git a/src/test/java/com/android/tools/metalava/ShowForStubPurposesAnnotationTest.kt b/src/test/java/com/android/tools/metalava/ShowForStubPurposesAnnotationTest.kt
index fbffaac..74db12c 100644
--- a/src/test/java/com/android/tools/metalava/ShowForStubPurposesAnnotationTest.kt
+++ b/src/test/java/com/android/tools/metalava/ShowForStubPurposesAnnotationTest.kt
@@ -17,7 +17,6 @@
 package com.android.tools.metalava
 
 import com.android.tools.lint.checks.infrastructure.TestFile
-import com.android.tools.metalava.doclava1.Issues
 import org.junit.Test
 
 class ShowForStubPurposesAnnotationTest : DriverTest() {