<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.13.0-alpha01" type="baseline" client="gradle" dependencies="false" name="AGP (8.13.0-alpha01)" variant="all" version="8.13.0-alpha01">

    <issue
        id="AndroidXFlaggedApi"
        message="Class `FlagFlaggedApiImpl` is a flagged API and must be inside a flag check for &quot;flaggedapi.myFlag&quot;"
        errorLine1="        FlagFlaggedApiImpl.innerApi()"
        errorLine2="        ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/FlaggedUsageInOutline.kt"/>
    </issue>

    <issue
        id="AndroidXFlaggedApi"
        message="Method `innerApi()` is a flagged API and must be inside a flag check for &quot;flaggedapi.myFlag&quot;"
        errorLine1="        FlagFlaggedApiImpl.innerApi()"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/FlaggedUsageInOutline.kt"/>
    </issue>

    <issue
        id="AndroidXFlaggedApi"
        message="Method `innerApi()` is a flagged API and must be inside a flag check for &quot;flaggedapi.myFlag&quot;"
        errorLine1="        FlaggedApiContainer.innerApi()"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/FlaggedUsageWithoutOutline.kt"/>
    </issue>

    <issue
        id="BanKeepAnnotation"
        message="Uses @Keep annotation"
        errorLine1="@Keep"
        errorLine2="~~~~~">
        <location
            file="src/main/java/androidx/KeepAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="BanKeepAnnotation"
        message="Uses @Keep annotation"
        errorLine1="@Keep class KeepAnnotationUsageKotlin"
        errorLine2="~~~~~">
        <location
            file="src/main/java/androidx/KeepAnnotationUsageKotlin.kt"/>
    </issue>

    <issue
        id="BanParcelableUsage"
        message="Class implements android.os.Parcelable"
        errorLine1="public class ParcelableUsageJava implements Parcelable {"
        errorLine2="             ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/ParcelableUsageJava.java"/>
    </issue>

    <issue
        id="BanParcelableUsage"
        message="Class implements android.os.Parcelable"
        errorLine1="open class ParcelableUsageKotlin protected constructor(parcel: Parcel) : Parcelable {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/ParcelableUsageKotlin.kt"/>
    </issue>

    <issue
        id="BanTargetApiAnnotation"
        message="Use `@RequiresApi` instead of `@TargetApi`"
        errorLine1="@TargetApi(29)"
        errorLine2="~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/TargetApiUsageJava.java"/>
    </issue>

    <issue
        id="BanTargetApiAnnotation"
        message="Use `@RequiresApi` instead of `@TargetApi`"
        errorLine1="    @TargetApi(30)"
        errorLine2="    ~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/TargetApiUsageJava.java"/>
    </issue>

    <issue
        id="BanTargetApiAnnotation"
        message="Use `@RequiresApi` instead of `@TargetApi`"
        errorLine1="@TargetApi(29)"
        errorLine2="~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/TargetApiUsageKotlin.kt"/>
    </issue>

    <issue
        id="BanTargetApiAnnotation"
        message="Use `@RequiresApi` instead of `@TargetApi`"
        errorLine1="    @TargetApi(30) fun someMethod() {}"
        errorLine2="    ~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/TargetApiUsageKotlin.kt"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(1000);"
        errorLine2="               ~~~~~">
        <location
            file="src/main/java/androidx/ThreadSleepUsageJava.java"/>
    </issue>

    <issue
        id="BanThreadSleep"
        message="Uses Thread.sleep()"
        errorLine1="        Thread.sleep(1000)"
        errorLine2="               ~~~~~">
        <location
            file="src/main/java/androidx/ThreadSleepUsageKotlin.kt"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API."
        errorLine1="                        performStopActivity3ParamsMethod.invoke(activityThread,"
        errorLine2="                        ^">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreator.java"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API."
        errorLine1="                        performStopActivity2ParamsMethod.invoke(activityThread,"
        errorLine2="                        ^">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreator.java"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API."
        errorLine1="                        performStopActivity3ParamsMethod!!.invoke("
        errorLine2="                        ^">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreatorKt.kt"/>
    </issue>

    <issue
        id="BanUncheckedReflection"
        message="Method.invoke requires both an upper and lower SDK bounds checks to be safe, and the upper bound must be below SdkVersionInfo.HIGHEST_KNOWN_API."
        errorLine1="                        performStopActivity2ParamsMethod!!.invoke(activityThread, token, false)"
        errorLine2="                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreatorKt.kt"/>
    </issue>

    <issue
        id="ClassVerificationFailure"
        message="This call references a method guarded by Trunk Stable flag &quot;flaggedapi.myFlag&quot;; however, the containing class flaggedapi.AutofixUnsafeUsageWithTypeConversion is reachable from earlier API levels and will fail run-time class verification."
        errorLine1="            val resultA = FlaggedApiContainer.apiWithTypeArgument(null)"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/AutofixUnsafeUsageWithTypeConversion.kt"/>
    </issue>

    <issue
        id="ClassVerificationFailure"
        message="This call references a method guarded by Trunk Stable flag &quot;flaggedapi.myFlag&quot;; however, the containing class flaggedapi.AutofixUnsafeUsageWithTypeConversion is reachable from earlier API levels and will fail run-time class verification."
        errorLine1="            val resultB = FlaggedApiContainer.apiWithGenericType&lt;Int?, Float>(null)"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/AutofixUnsafeUsageWithTypeConversion.kt"/>
    </issue>

    <issue
        id="ClassVerificationFailure"
        message="This call references a method guarded by Trunk Stable flag &quot;flaggedapi.myFlag&quot;; however, the containing class flaggedapi.AutofixUnsafeUsageWithTypeConversion is reachable from earlier API levels and will fail run-time class verification."
        errorLine1="            val resultC = FlaggedApiContainer.apiWithTwoDimensionalArray(null)"
        errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/AutofixUnsafeUsageWithTypeConversion.kt"/>
    </issue>

    <issue
        id="ClassVerificationFailure"
        message="This call references a method guarded by Trunk Stable flag &quot;flaggedapi.myFlag&quot;; however, the containing class flaggedapi.FlaggedUsageWithoutOutline is reachable from earlier API levels and will fail run-time class verification."
        errorLine1="            FlaggedApiContainer.innerApi()"
        errorLine2="                                ~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/FlaggedUsageWithoutOutline.kt"/>
    </issue>

    <issue
        id="ClassVerificationFailure"
        message="This call references a method guarded by Trunk Stable flag &quot;flaggedapi.myFlag&quot;; however, the containing class flaggedapi.FlaggedUsageWithoutOutline is reachable from earlier API levels and will fail run-time class verification."
        errorLine1="        FlaggedApiContainer.innerApi()"
        errorLine2="                            ~~~~~~~~">
        <location
            file="src/main/java/flaggedapi/FlaggedUsageWithoutOutline.kt"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    public void draw(@NonNull Canvas canvas) {"
        errorLine2="                     ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/appcompat/widget/ActionBarBackgroundDrawable.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    public void getOutline(@NonNull Outline outline) {"
        errorLine2="                           ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/appcompat/widget/ActionBarBackgroundDrawable.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    static boolean recreate(@NonNull final Activity activity) {"
        errorLine2="                            ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreator.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="        LifecycleCheckCallbacks(@NonNull Activity aboutToRecreate) {"
        errorLine2="                                ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreator.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    static boolean recreate(@NonNull final Activity activity) {"
        errorLine2="                            ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreatorChecked.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="        LifecycleCheckCallbacks(@NonNull Activity aboutToRecreate) {"
        errorLine2="                                ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/app/ActivityRecreatorChecked.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    public static void scrollListBy(@NonNull ListView listView, int y) {"
        errorLine2="                                    ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompat.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    public static boolean canScrollList(@NonNull ListView listView, int direction) {"
        errorLine2="                                        ~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompat.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    protected ParcelableUsageJava(@NonNull Parcel in) {"
        errorLine2="                                  ~~~~~~~~">
        <location
            file="src/main/java/androidx/ParcelableUsageJava.java"/>
    </issue>

    <issue
        id="JSpecifyNullness"
        message="Switch nullness annotation to JSpecify"
        errorLine1="    public void writeToParcel(@NonNull Parcel dest, int flags) {"
        errorLine2="                              ~~~~~~~~">
        <location
            file="src/main/java/androidx/ParcelableUsageJava.java"/>
    </issue>

    <issue
        id="MetadataTagInsideApplicationTag"
        message="Detected &lt;application>-level meta-data tag."
        errorLine1="        &lt;meta-data android:name=&quot;name&quot; android:value=&quot;value&quot; />"
        errorLine2="        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/AndroidManifest.xml"/>
    </issue>

    <issue
        id="MissingServiceExportedEqualsTrue"
        message="Missing exported=true in &lt;service> tag"
        errorLine1="        &lt;service android:name=&quot;androidx.core.app.JobIntentService&quot;>"
        errorLine2="        ^">
        <location
            file="src/main/AndroidManifest.xml"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageJava.java"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageJava.java"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageJava.java"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.NONE)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageJava.java"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) fun testMethodPrivate() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.Companion.PRIVATE)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(VisibleForTesting.PRIVATE) fun testMethodValuePrivate() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) fun testMethodProtected() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @VisibleForTesting(otherwise = VisibleForTesting.NONE) fun testMethodPackageNone() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesNonDefaultVisibleForTesting"
        message="Found non-default `otherwise` value for @VisibleForTesting"
        errorLine1="    @get:VisibleForTesting(NONE) val testPropertyGet = &quot;test&quot;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/VisibleForTestingUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(androidx.annotation.RestrictTo.Scope.TESTS)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(RestrictTo.Scope.TESTS)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(Scope.TESTS)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(TESTS)"
        errorLine2="    ~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo({Scope.TESTS, Scope.LIBRARY})"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageJava.java"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(RestrictTo.Scope.TESTS) fun testMethod() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @RestrictTo(RestrictTo.Scope.TESTS, RestrictTo.Scope.LIBRARY) fun testMethodVarArg() {}"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageKotlin.kt"/>
    </issue>

    <issue
        id="UsesRestrictToTestsScope"
        message="Replace `@RestrictTo(TESTS)` with `@VisibleForTesting`"
        errorLine1="    @get:RestrictTo(RestrictTo.Scope.TESTS) val testPropertyGet = &quot;test&quot;"
        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RestrictToTestsAnnotationUsageKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/appcompat/widget/ActionBarBackgroundDrawable.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThis.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThis.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThis.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThisKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThisKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallToThisKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="    @RequiresApi(23)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="    @RequiresApi(23)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCastKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 23) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeGenericMethodReferenceJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 23) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeGenericMethodReferenceKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="    @RequiresApi(19)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeMethodWithQualifiedClass.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="    @RequiresApi(19)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeMethodWithQualifiedClassKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 21) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingClassJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="    @RequiresApi(23)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingClassJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 21) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingClassKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="    @RequiresApi(23) internal class Api23Impl private constructor()"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingClassKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFix.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFix.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFix.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFixKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFixKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 21"
        errorLine1="    @RequiresApi(21)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeReferenceWithExistingFixKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 17) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeStaticMethodReferenceJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 17) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeStaticMethodReferenceKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 21) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeVoidMethodReferenceJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 21) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeVoidMethodReferenceKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 17) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/ClassVerificationFailureFromJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 19) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompat.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 19) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompat.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        if (Build.VERSION.SDK_INT >= 19) {"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompatKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 23"
        errorLine1="        return if (Build.VERSION.SDK_INT >= 19) {"
        errorLine2="                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/sample/core/widget/ListViewCompatKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="@RequiresApi(19)"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiJava.java"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="@RequiresApi(19)"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="    @RequiresApi(19)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19"
        errorLine1="@RequiresApi(19)"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 19 from outer annotation (`@RequiresApi(19)`)"
        errorLine1="    @RequiresApi(16)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 16"
        errorLine1="@RequiresApi(16)"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 16"
        errorLine1="    @RequiresApi(16)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 16"
        errorLine1="@RequiresApi(16)"
        errorLine2="~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="ObsoleteSdkInt"
        message="Unnecessary; `SDK_INT` is always >= 16"
        errorLine1="    @RequiresApi(16)"
        errorLine2="    ~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/RequiresApiKotlin.kt"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void callVarArgsMethodNoArgs(BaseAdapter adapter) {"
        errorLine2="                                        ~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void callVarArgsMethodOneArg(BaseAdapter adapter, CharBuffer vararg) {"
        errorLine2="                                        ~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void callVarArgsMethodOneArg(BaseAdapter adapter, CharBuffer vararg) {"
        errorLine2="                                                             ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void callVarArgsMethodManyArgs(BaseAdapter adapter, CharBuffer vararg1,"
        errorLine2="                                          ~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void callVarArgsMethodManyArgs(BaseAdapter adapter, CharBuffer vararg1,"
        errorLine2="                                                               ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="            CharBuffer vararg2, CharBuffer vararg3) {"
        errorLine2="            ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="            CharBuffer vararg2, CharBuffer vararg3) {"
        errorLine2="                                ~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void unsafeReferenceOnCastObject(Object secretDisplayCutout) {"
        errorLine2="                                            ~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallOnCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void castReceiver(Notification.MessagingStyle style, Notification.Builder builder) {"
        errorLine2="                             ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void castReceiver(Notification.MessagingStyle style, Notification.Builder builder) {"
        errorLine2="                                                                ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void castParameter(Notification.Builder builder, Notification.CarExtender extender) {"
        errorLine2="                              ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public void castParameter(Notification.Builder builder, Notification.CarExtender extender) {"
        errorLine2="                                                            ~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public Drawable createAdaptiveIconDrawableReturnDrawable() {"
        errorLine2="           ~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public AdaptiveIconDrawable createAndReturnAdaptiveIconDrawable() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public Object methodReturnsIconAsObject() {"
        errorLine2="           ~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public Icon methodReturnsIconAsIcon() {"
        errorLine2="           ~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public Notification.DecoratedCustomViewStyle callQualifiedConstructor() {"
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeConstructorQualifiedClass.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public PrintAttributes.Builder unsafeReferenceWithQualifiedClasses("
        errorLine2="           ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeMethodWithQualifiedClass.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="            PrintAttributes.Builder builder,"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeMethodWithQualifiedClass.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="            PrintAttributes.MediaSize mediaSize"
        errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/androidx/AutofixUnsafeMethodWithQualifiedClass.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public static List&lt;int[]&gt; apiWithTypeArgument(BiConsumer&lt;Integer, Float> param) {"
        errorLine2="                  ~~~~~~~~~~~">
        <location
            file="src/main/java/android/flagging/FlaggedApiContainer.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public static List&lt;int[]&gt; apiWithTypeArgument(BiConsumer&lt;Integer, Float> param) {"
        errorLine2="                                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~">
        <location
            file="src/main/java/android/flagging/FlaggedApiContainer.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public static float[][] apiWithTwoDimensionalArray(int[] param) {"
        errorLine2="                  ~~~~~~~~~">
        <location
            file="src/main/java/android/flagging/FlaggedApiContainer.java"/>
    </issue>

    <issue
        id="UnknownNullness"
        message="Unknown nullability; explicitly declare as `@Nullable` or `@NonNull` to improve Kotlin interoperability; see https://developer.android.com/kotlin/interop#nullability_annotations"
        errorLine1="    public static float[][] apiWithTwoDimensionalArray(int[] param) {"
        errorLine2="                                                       ~~~~~">
        <location
            file="src/main/java/android/flagging/FlaggedApiContainer.java"/>
    </issue>

</issues>
