Slight cleanup for some Compose lint checks

Test: existing tests
Test: lintDebug
Change-Id: Ia0090cbfc7784c59eb1fc69fedc41566686ef651
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 704b120..4e93399 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
@@ -32,9 +32,11 @@
 import org.jetbrains.kotlin.psi.KtFunctionType
 import org.jetbrains.kotlin.psi.KtNullableType
 import org.jetbrains.kotlin.psi.KtParameter
+import org.jetbrains.uast.UAnnotation
 import org.jetbrains.uast.UElement
 import org.jetbrains.uast.UMethod
 import org.jetbrains.uast.UParameter
+import org.jetbrains.uast.toUElement
 import java.util.EnumSet
 
 /**
@@ -72,10 +74,11 @@
 
                 val typeReference = ktParameter.typeReference!!
 
-                val hasComposableAnnotationOnType = typeReference.modifierList?.annotationEntries
-                    ?.any {
-                        it.shortName?.identifier == ComposableShortName
-                    }
+                // Ideally this annotation should be available on the PsiType itself
+                // https://youtrack.jetbrains.com/issue/KT-45244
+                val hasComposableAnnotationOnType = typeReference.annotationEntries.any {
+                    (it.toUElement() as UAnnotation).qualifiedName == ComposableFqn
+                }
 
                 val functionType = when (val typeElement = typeReference.typeElement) {
                     is KtFunctionType -> typeElement
@@ -83,7 +86,7 @@
                     else -> null
                 }
 
-                if (functionType != null && hasComposableAnnotationOnType == true) {
+                if (functionType != null && hasComposableAnnotationOnType) {
                     ComposableLambdaParameterInfo(parameter, functionType)
                 } else {
                     null
diff --git a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RememberDetector.kt b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RememberDetector.kt
index d05d0b1..74ff784e 100644
--- a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RememberDetector.kt
+++ b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RememberDetector.kt
@@ -18,7 +18,6 @@
 
 package androidx.compose.runtime.lint
 
-import com.android.tools.lint.client.api.UElementHandler
 import com.android.tools.lint.detector.api.Category
 import com.android.tools.lint.detector.api.Detector
 import com.android.tools.lint.detector.api.Implementation
@@ -28,6 +27,7 @@
 import com.android.tools.lint.detector.api.Severity
 import com.android.tools.lint.detector.api.SourceCodeScanner
 import com.intellij.psi.PsiJavaFile
+import com.intellij.psi.PsiMethod
 import com.intellij.psi.PsiType
 import org.jetbrains.uast.UCallExpression
 import java.util.EnumSet
@@ -36,22 +36,17 @@
  * [Detector] that checks `remember` calls to make sure they are not returning [Unit].
  */
 class RememberDetector : Detector(), SourceCodeScanner {
-    override fun getApplicableUastTypes() = listOf(UCallExpression::class.java)
+    override fun getApplicableMethodNames(): List<String> = listOf(RememberShortName)
 
-    override fun createUastHandler(context: JavaContext) = object : UElementHandler() {
-        override fun visitCallExpression(node: UCallExpression) {
-            val call = node.resolve() ?: return
-            if (call.name == RememberShortName &&
-                (call.containingFile as? PsiJavaFile)?.packageName == RuntimePackageName
-            ) {
-                if (node.getExpressionType() == PsiType.VOID) {
-                    context.report(
-                        RememberReturnType,
-                        node,
-                        context.getNameLocation(node),
-                        "`remember` calls must not return `Unit`"
-                    )
-                }
+    override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
+        if ((method.containingFile as? PsiJavaFile)?.packageName == RuntimePackageName) {
+            if (node.getExpressionType() == PsiType.VOID) {
+                context.report(
+                    RememberReturnType,
+                    node,
+                    context.getNameLocation(node),
+                    "`remember` calls must not return `Unit`"
+                )
             }
         }
     }