Fix suppression related issues with Compose lint checks
We were previously using the wrong scope, so suppress annotations would not work when applied directly to the element.
Fixes: b/257293458
Fixes: b/257293766
Test: ComposableLambdaParameterDetectorTest, ModifierParameterDetectorTest
Change-Id: I35e80844d5fb87799c9d5c06e2691d99e15cbdb4
diff --git a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetector.kt b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetector.kt
index cd738fe..1ed4cd9 100644
--- a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetector.kt
+++ b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetector.kt
@@ -107,7 +107,7 @@
if (name != "content" && parameterInfo.functionType.parameters.isEmpty()) {
context.report(
ComposableLambdaParameterNaming,
- node,
+ uElement,
context.getNameLocation(uElement),
"Composable lambda parameter should be named `content`",
LintFix.create()
@@ -123,7 +123,7 @@
if (parameter !== node.uastParameters.last()) {
context.report(
ComposableLambdaParameterPosition,
- node,
+ uElement,
context.getNameLocation(uElement),
"Composable lambda parameter should be the last parameter so it can be used " +
"as a trailing lambda"
diff --git a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetectorTest.kt b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetectorTest.kt
index 4ace0ae..463830d 100644
--- a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetectorTest.kt
+++ b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ComposableLambdaParameterDetectorTest.kt
@@ -59,7 +59,6 @@
Stubs.Composable
)
.skipTestModes(TestMode.TYPE_ALIAS)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293458
.run()
.expect(
"""
@@ -97,7 +96,6 @@
Stubs.Composable
)
.skipTestModes(TestMode.TYPE_ALIAS)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293458
.run()
.expect(
"""
@@ -127,7 +125,6 @@
Stubs.Composable
)
.skipTestModes(TestMode.TYPE_ALIAS)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293458
.run()
.expect(
"""
@@ -169,7 +166,6 @@
),
Stubs.Composable
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293458
.run()
.expect(
"""
@@ -235,7 +231,6 @@
Stubs.Composable
)
.skipTestModes(TestMode.TYPE_ALIAS)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293458
.run()
.expect(
"""
diff --git a/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/ModifierParameterDetector.kt b/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/ModifierParameterDetector.kt
index d786c2f..bcc5884 100644
--- a/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/ModifierParameterDetector.kt
+++ b/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/ModifierParameterDetector.kt
@@ -75,7 +75,7 @@
if (modifierParameter.name != ModifierParameterName) {
context.report(
ModifierParameter,
- node,
+ modifierParameterElement,
context.getNameLocation(modifierParameterElement),
"$modifierName parameter should be named $ModifierParameterName",
LintFix.create()
@@ -91,7 +91,7 @@
if (modifierParameter.type.canonicalText != Names.Ui.Modifier.javaFqn) {
context.report(
ModifierParameter,
- node,
+ modifierParameterElement,
context.getNameLocation(modifierParameterElement),
"$modifierName parameter should have a type of $modifierName",
LintFix.create()
@@ -113,7 +113,7 @@
if (referenceExpression?.getReferencedName() != modifierName) {
context.report(
ModifierParameter,
- node,
+ modifierParameterElement,
context.getNameLocation(modifierParameterElement),
"Optional $modifierName parameter should have a default value " +
"of `$modifierName`",
@@ -134,7 +134,7 @@
if (index != optionalParameterIndex) {
context.report(
ModifierParameter,
- node,
+ modifierParameterElement,
context.getNameLocation(modifierParameterElement),
"$modifierName parameter should be the first optional parameter",
// Hard to make a lint fix for this and keep parameter formatting, so
diff --git a/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ModifierParameterDetectorTest.kt b/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ModifierParameterDetectorTest.kt
index 0c5b55e..f3aba8d 100644
--- a/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ModifierParameterDetectorTest.kt
+++ b/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ModifierParameterDetectorTest.kt
@@ -20,7 +20,6 @@
import androidx.compose.lint.test.Stubs
import com.android.tools.lint.checks.infrastructure.LintDetectorTest
-import com.android.tools.lint.checks.infrastructure.TestMode
import com.android.tools.lint.detector.api.Detector
import com.android.tools.lint.detector.api.Issue
import org.junit.Test
@@ -63,7 +62,6 @@
Stubs.Composable,
Stubs.Modifier
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293766
.run()
.expect(
"""
@@ -105,7 +103,6 @@
Stubs.Composable,
Stubs.Modifier
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293766
.run()
.expect(
"""
@@ -149,7 +146,6 @@
Stubs.Composable,
Stubs.Modifier
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293766
.run()
.expect(
"""
@@ -191,7 +187,6 @@
Stubs.Composable,
Stubs.Modifier
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293766
.run()
.expect(
"""
@@ -227,7 +222,6 @@
Stubs.Composable,
Stubs.Modifier
)
- .skipTestModes(TestMode.SUPPRESSIBLE) // b/257293766
.run()
.expect(
"""