Revert "Cast method call args in CVF fix if they don't match expected types"
This reverts commit 36f08d8b47be650faeba40ef8f7ea995ac9e9690.
Test: None
Change-Id: Ifc9e4746e1af3a7c9d076421973cfc6b03f33301
diff --git a/lint-checks/integration-tests/src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java b/lint-checks/integration-tests/src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java
deleted file mode 100644
index 2128027..0000000
--- a/lint-checks/integration-tests/src/main/java/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2023 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 androidx;
-
-import android.widget.BaseAdapter;
-
-import androidx.annotation.RequiresApi;
-
-import java.nio.CharBuffer;
-
-/**
- * Contains unsafe calls to a method with a variable number of arguments which are implicitly cast.
- */
-@SuppressWarnings("unused")
-public class AutofixOnUnsafeCallWithImplicitVarArgsCast {
- /**
- * Calls the vararg method with no args.
- */
- @RequiresApi(27)
- public void callVarArgsMethodNoArgs(BaseAdapter adapter) {
- adapter.setAutofillOptions();
- }
-
- /**
- *Calls the vararg method with one args.
- */
- @RequiresApi(27)
- public void callVarArgsMethodOneArg(BaseAdapter adapter, CharBuffer vararg) {
- adapter.setAutofillOptions(vararg);
- }
-
- /**
- * Calls the vararg method with multiple args.
- */
- @RequiresApi(27)
- public void callVarArgsMethodManyArgs(BaseAdapter adapter, CharBuffer vararg1,
- CharBuffer vararg2, CharBuffer vararg3) {
- adapter.setAutofillOptions(vararg1, vararg2, vararg3);
- }
-}
diff --git a/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java b/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitCast.java
similarity index 95%
rename from lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java
rename to lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitCast.java
index 0eed5cb..0e074a7 100644
--- a/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitReturnCast.java
+++ b/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitCast.java
@@ -24,10 +24,10 @@
import androidx.annotation.RequiresApi;
/**
- * Tests to ensure the generated lint fix does not leave in implicit casts from a new return type.
+ * Tests to ensure the generated lint fix does not leave in implicit casts from a new type.
*/
@SuppressWarnings("unused")
-public abstract class AutofixUnsafeCallWithImplicitReturnCast {
+public abstract class AutofixUnsafeCallWithImplicitCast {
/**
* This method creates an AdaptiveIconDrawable and implicitly casts it to Drawable.
*/
diff --git a/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java b/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java
deleted file mode 100644
index cc20718..0000000
--- a/lint-checks/integration-tests/src/main/java/androidx/AutofixUnsafeCallWithImplicitParamCast.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2023 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 androidx;
-
-import android.app.Notification;
-
-import androidx.annotation.RequiresApi;
-
-/**
- * Tests to ensure the generated lint fix does not leave in implicit casts from a new argument type.
- */
-@SuppressWarnings("unused")
-public class AutofixUnsafeCallWithImplicitParamCast {
- /**
- * This uses the Notification.MessagingStyle type, but setBuilder is defined on
- * Notification.Style, and the two classes were introduced in different API levels.
- */
- @RequiresApi(24)
- public void castReceiver(Notification.MessagingStyle style, Notification.Builder builder) {
- style.setBuilder(builder);
- }
-
- /**
- * This uses Notification.CarExtender, but extend is defined with Notification.Extender as a
- * parameter, and the two classes were introduced at different API levels.
- */
- @RequiresApi(23)
- public void castParameter(Notification.Builder builder, Notification.CarExtender extender) {
- builder.extend(extender);
- }
-}
diff --git a/lint-checks/src/main/java/androidx/build/lint/ClassVerificationFailureDetector.kt b/lint-checks/src/main/java/androidx/build/lint/ClassVerificationFailureDetector.kt
index f26db17..62d19a0 100644
--- a/lint-checks/src/main/java/androidx/build/lint/ClassVerificationFailureDetector.kt
+++ b/lint-checks/src/main/java/androidx/build/lint/ClassVerificationFailureDetector.kt
@@ -46,7 +46,6 @@
import com.intellij.psi.PsiClassType
import com.intellij.psi.PsiCompiledElement
import com.intellij.psi.PsiElement
-import com.intellij.psi.PsiEllipsisType
import com.intellij.psi.PsiExpressionList
import com.intellij.psi.PsiMethod
import com.intellij.psi.PsiMethodCallExpression
@@ -68,7 +67,6 @@
import org.jetbrains.uast.UThisExpression
import org.jetbrains.uast.getContainingUClass
import org.jetbrains.uast.getContainingUMethod
-import org.jetbrains.uast.isNullLiteral
import org.jetbrains.uast.util.isConstructorCall
import org.jetbrains.uast.util.isMethodCall
@@ -534,8 +532,7 @@
call.receiver,
call.valueArguments,
wrapperClassName,
- wrapperMethodName,
- wrapperMethodParams
+ wrapperMethodName
)
val fix = fix()
@@ -691,7 +688,6 @@
* @param callValueArguments Arguments of the call to the platform method
* @param wrapperClassName Name of the generated wrapper class
* @param wrapperMethodName Name of the generated wrapper method
- * @param wrapperMethodParams Param types of the wrapper method
* @return Source code for a call to the static wrapper method
*/
private fun generateWrapperCall(
@@ -700,7 +696,6 @@
callValueArguments: List<UExpression>,
wrapperClassName: String,
wrapperMethodName: String,
- wrapperMethodParams: List<PsiType>
): String {
val callReceiverStr = when {
// Static method
@@ -713,34 +708,15 @@
// it must be a call to an instance method using `this` implicitly.
callReceiver == null ->
"this"
- // Use the original call receiver string (removing extra parens), casting if needed
+ // Otherwise, use the original call receiver string (removing extra parens)
else ->
- createArgumentString(unwrapExpression(callReceiver), wrapperMethodParams[0])
+ unwrapExpression(callReceiver).asSourceString()
}
val callValues = if (callValueArguments.isNotEmpty()) {
- // The first element in the wrapperMethodParams is the receiver, so drop that.
- // Also drop the last parameter, because it is special-cased later.
- val paramTypesWithoutReceiverAndFinal = wrapperMethodParams.drop(1).dropLast(1)
- // For varargs methods, what we care about for the last type is the type of each
- // vararg, not the containing type.
- val finalParamType = if (method.isVarArgs) {
- (wrapperMethodParams.last() as PsiEllipsisType).componentType
- } else {
- wrapperMethodParams.last()
+ callValueArguments.joinToString(separator = ", ") { argument ->
+ argument.asSourceString()
}
-
- callValueArguments.mapIndexed { argIndex, arg ->
- // The number of args might be greater than the number of param types due to
- // varargs, repeat the final param type for all args after exhausting the
- // paramTypesWithoutReceiverAndFinal list.
- val expectedType = if (argIndex < paramTypesWithoutReceiverAndFinal.size) {
- paramTypesWithoutReceiverAndFinal[argIndex]
- } else {
- finalParamType
- }
- createArgumentString(arg, expectedType)
- }.joinToString(separator = ", ")
} else {
null
}
@@ -751,24 +727,6 @@
}
/**
- * Creates the string representation of an argument in the wrapper call. If the type of the
- * arg is not identical to the parameter type of the wrapper method, casts to that type.
- */
- private fun createArgumentString(arg: UExpression, expectedType: PsiType): String {
- val argType = arg.getExpressionType()
- val expectedTypeText = expectedType.canonicalText
- // If the arg is the expected type, use as normal, otherwise, cast to expected type.
- // Uses text-base equality instead of directly comparing types because certain types
- // (eq. java.lang.Class<T>) are not necessarily equal to instances of the same type.
- // There isn't really a point in casting if the arg is null.
- return if (argType?.equalsToText(expectedTypeText) == true || arg.isNullLiteral()) {
- arg.asSourceString()
- } else {
- "($expectedTypeText) ${arg.asSourceString()}"
- }
- }
-
- /**
* Remove parentheses from the expression (unwrap the expression until it is no longer a
* UParenthesizedExpression).
*/
diff --git a/lint-checks/src/test/java/androidx/build/lint/ClassVerificationFailureDetectorTest.kt b/lint-checks/src/test/java/androidx/build/lint/ClassVerificationFailureDetectorTest.kt
index 50af7de..55398d8 100644
--- a/lint-checks/src/test/java/androidx/build/lint/ClassVerificationFailureDetectorTest.kt
+++ b/lint-checks/src/test/java/androidx/build/lint/ClassVerificationFailureDetectorTest.kt
@@ -82,7 +82,7 @@
Fix for src/androidx/sample/core/widget/ListViewCompat.java line 39: Extract to static inner class:
@@ -39 +39
- listView.scrollListBy(y);
-+ Api19Impl.scrollListBy((android.widget.AbsListView) listView, y);
++ Api19Impl.scrollListBy(listView, y);
@@ -91 +91
+ @androidx.annotation.RequiresApi(19)
+ static class Api19Impl {
@@ -95,11 +95,12 @@
+ absListView.scrollListBy(y);
+ }
+
+@@ -92 +103
+ }
Fix for src/androidx/sample/core/widget/ListViewCompat.java line 69: Extract to static inner class:
@@ -69 +69
- return listView.canScrollList(direction);
-+ return Api19Impl.canScrollList((android.widget.AbsListView) listView, direction);
++ return Api19Impl.canScrollList(listView, direction);
@@ -91 +91
+ @androidx.annotation.RequiresApi(19)
+ static class Api19Impl {
@@ -112,6 +113,7 @@
+ return absListView.canScrollList(direction);
+ }
+
+@@ -92 +103
+ }
""".trimIndent()
/* ktlint-enable max-line-length */
@@ -523,11 +525,12 @@
+ return viewGroup.getClipToPadding();
+ }
+
+@@ -61 +72
+ }
Fix for src/androidx/AutofixUnsafeCallToThis.java line 48: Extract to static inner class:
@@ -48 +48
- this.getClipToPadding();
-+ Api21Impl.getClipToPadding((ViewGroup) this);
++ Api21Impl.getClipToPadding(this);
@@ -60 +60
+ @androidx.annotation.RequiresApi(21)
+ static class Api21Impl {
@@ -540,6 +543,7 @@
+ return viewGroup.getClipToPadding();
+ }
+
+@@ -61 +72
+ }
Fix for src/androidx/AutofixUnsafeCallToThis.java line 57: Extract to static inner class:
@@ -57 +57
@@ -557,6 +561,7 @@
+ return viewGroup.getClipToPadding();
+ }
+
+@@ -61 +72
+ }
"""
/* ktlint-enable max-line-length */
@@ -604,34 +609,34 @@
}
@Test
- fun `Auto-fix with implicit class cast from new return type (issue 214389795)`() {
+ fun `Auto-fix with implicit class cast from new type (issue 214389795)`() {
val input = arrayOf(
- javaSample("androidx.AutofixUnsafeCallWithImplicitReturnCast"),
+ javaSample("androidx.AutofixUnsafeCallWithImplicitCast"),
RequiresApi
)
/* ktlint-disable max-line-length */
val expected = """
-src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java:36: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitReturnCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
+src/androidx/AutofixUnsafeCallWithImplicitCast.java:36: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
return new AdaptiveIconDrawable(null, null);
~~~~~~~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java:44: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitReturnCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
+src/androidx/AutofixUnsafeCallWithImplicitCast.java:44: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
return new AdaptiveIconDrawable(null, null);
~~~~~~~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java:52: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitReturnCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
+src/androidx/AutofixUnsafeCallWithImplicitCast.java:52: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
return Icon.createWithAdaptiveBitmap(null);
~~~~~~~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java:60: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitReturnCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
+src/androidx/AutofixUnsafeCallWithImplicitCast.java:60: Error: This call references a method added in API level 26; however, the containing class androidx.AutofixUnsafeCallWithImplicitCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
return Icon.createWithAdaptiveBitmap(null);
~~~~~~~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java:68: Error: This call references a method added in API level 24; however, the containing class androidx.AutofixUnsafeCallWithImplicitReturnCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
+src/androidx/AutofixUnsafeCallWithImplicitCast.java:68: Error: This call references a method added in API level 24; however, the containing class androidx.AutofixUnsafeCallWithImplicitCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
useStyle(new Notification.DecoratedCustomViewStyle());
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 errors, 0 warnings
"""
val expectedFix = """
-Fix for src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java line 36: Extract to static inner class:
+Fix for src/androidx/AutofixUnsafeCallWithImplicitCast.java line 36: Extract to static inner class:
@@ -36 +36
- return new AdaptiveIconDrawable(null, null);
+ return Api26Impl.createAdaptiveIconDrawableReturnsDrawable(null, null);
@@ -649,7 +654,7 @@
+
@@ -78 +89
+ }
-Fix for src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java line 44: Extract to static inner class:
+Fix for src/androidx/AutofixUnsafeCallWithImplicitCast.java line 44: Extract to static inner class:
@@ -44 +44
- return new AdaptiveIconDrawable(null, null);
+ return Api26Impl.createAdaptiveIconDrawable(null, null);
@@ -667,7 +672,7 @@
+
@@ -78 +89
+ }
-Fix for src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java line 52: Extract to static inner class:
+Fix for src/androidx/AutofixUnsafeCallWithImplicitCast.java line 52: Extract to static inner class:
@@ -52 +52
- return Icon.createWithAdaptiveBitmap(null);
+ return Api26Impl.createWithAdaptiveBitmapReturnsObject(null);
@@ -685,7 +690,7 @@
+
@@ -78 +89
+ }
-Fix for src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java line 60: Extract to static inner class:
+Fix for src/androidx/AutofixUnsafeCallWithImplicitCast.java line 60: Extract to static inner class:
@@ -60 +60
- return Icon.createWithAdaptiveBitmap(null);
+ return Api26Impl.createWithAdaptiveBitmap(null);
@@ -703,7 +708,7 @@
+
@@ -78 +89
+ }
-Fix for src/androidx/AutofixUnsafeCallWithImplicitReturnCast.java line 68: Extract to static inner class:
+Fix for src/androidx/AutofixUnsafeCallWithImplicitCast.java line 68: Extract to static inner class:
@@ -68 +68
- useStyle(new Notification.DecoratedCustomViewStyle());
+ useStyle(Api24Impl.createDecoratedCustomViewStyleReturnsStyle());
@@ -764,140 +769,4 @@
check(*input).expect(expected).expectFixDiffs(expectedFix)
}
-
- @Test
- fun `Auto-fix with implicit class cast from new parameter type (issue 266845827)`() {
- val input = arrayOf(
- javaSample("androidx.AutofixUnsafeCallWithImplicitParamCast"),
- RequiresApi
- )
-
- /* ktlint-disable max-line-length */
- val expected = """
-src/androidx/AutofixUnsafeCallWithImplicitParamCast.java:34: Error: This call references a method added in API level 16; however, the containing class androidx.AutofixUnsafeCallWithImplicitParamCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
- style.setBuilder(builder);
- ~~~~~~~~~~
-src/androidx/AutofixUnsafeCallWithImplicitParamCast.java:43: Error: This call references a method added in API level 20; however, the containing class androidx.AutofixUnsafeCallWithImplicitParamCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
- builder.extend(extender);
- ~~~~~~
-2 errors, 0 warnings
- """
-
- val expectedFix = """
-Fix for src/androidx/AutofixUnsafeCallWithImplicitParamCast.java line 34: Extract to static inner class:
-@@ -34 +34
-- style.setBuilder(builder);
-+ Api16Impl.setBuilder((Notification.Style) style, builder);
-@@ -45 +45
-+ @RequiresApi(16)
-+ static class Api16Impl {
-+ private Api16Impl() {
-+ // This class is not instantiable.
-+ }
-+
-+ @DoNotInline
-+ static void setBuilder(Notification.Style style, Notification.Builder builder) {
-+ style.setBuilder(builder);
-+ }
-+
-+ }
-Fix for src/androidx/AutofixUnsafeCallWithImplicitParamCast.java line 43: Extract to static inner class:
-@@ -43 +43
-- builder.extend(extender);
-+ Api20Impl.extend(builder, (Notification.Extender) extender);
-+ @RequiresApi(20)
-+ static class Api20Impl {
-+ private Api20Impl() {
-+ // This class is not instantiable.
-+ }
-+
-+ @DoNotInline
-+ static Notification.Builder extend(Notification.Builder builder, Notification.Extender extender) {
-+ return builder.extend(extender);
-+ }
-+
-+ }
- """
- /* ktlint-enable max-line-length */
-
- check(*input).expect(expected).expectFixDiffs(expectedFix)
- }
-
- @Test
- fun `Auto-fix for method with varargs that are implicitly cast (issue 266845827)`() {
- val input = arrayOf(
- javaSample("androidx.AutofixOnUnsafeCallWithImplicitVarArgsCast"),
- RequiresApi
- )
-
- /* ktlint-disable max-line-length */
- val expected = """
-src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java:35: Error: This call references a method added in API level 27; however, the containing class androidx.AutofixOnUnsafeCallWithImplicitVarArgsCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
- adapter.setAutofillOptions();
- ~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java:43: Error: This call references a method added in API level 27; however, the containing class androidx.AutofixOnUnsafeCallWithImplicitVarArgsCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
- adapter.setAutofillOptions(vararg);
- ~~~~~~~~~~~~~~~~~~
-src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java:52: Error: This call references a method added in API level 27; however, the containing class androidx.AutofixOnUnsafeCallWithImplicitVarArgsCast is reachable from earlier API levels and will fail run-time class verification. [ClassVerificationFailure]
- adapter.setAutofillOptions(vararg1, vararg2, vararg3);
- ~~~~~~~~~~~~~~~~~~
-3 errors, 0 warnings
- """
-
- val expectedFix = """
-Fix for src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java line 35: Extract to static inner class:
-@@ -35 +35
-- adapter.setAutofillOptions();
-+ Api27Impl.setAutofillOptions(adapter);
-@@ -54 +54
-+ @RequiresApi(27)
-+ static class Api27Impl {
-+ private Api27Impl() {
-+ // This class is not instantiable.
-+ }
-+
-+ @DoNotInline
-+ static void setAutofillOptions(BaseAdapter baseAdapter, java.lang.CharSequence... options) {
-+ baseAdapter.setAutofillOptions(options);
-+ }
-+
-+ }
-Fix for src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java line 43: Extract to static inner class:
-@@ -43 +43
-- adapter.setAutofillOptions(vararg);
-+ Api27Impl.setAutofillOptions(adapter, (java.lang.CharSequence) vararg);
-@@ -54 +54
-+ @RequiresApi(27)
-+ static class Api27Impl {
-+ private Api27Impl() {
-+ // This class is not instantiable.
-+ }
-+
-+ @DoNotInline
-+ static void setAutofillOptions(BaseAdapter baseAdapter, java.lang.CharSequence... options) {
-+ baseAdapter.setAutofillOptions(options);
-+ }
-+
-+ }
-Fix for src/androidx/AutofixOnUnsafeCallWithImplicitVarArgsCast.java line 52: Extract to static inner class:
-@@ -52 +52
-- adapter.setAutofillOptions(vararg1, vararg2, vararg3);
-+ Api27Impl.setAutofillOptions(adapter, (java.lang.CharSequence) vararg1, (java.lang.CharSequence) vararg2, (java.lang.CharSequence) vararg3);
-+ @RequiresApi(27)
-+ static class Api27Impl {
-+ private Api27Impl() {
-+ // This class is not instantiable.
-+ }
-+
-+ @DoNotInline
-+ static void setAutofillOptions(BaseAdapter baseAdapter, java.lang.CharSequence... options) {
-+ baseAdapter.setAutofillOptions(options);
-+ }
-+
-+ }
- """
- /* ktlint-enable max-line-length */
-
- check(*input).expect(expected).expectFixDiffs(expectedFix)
- }
}