override fun visitLambdaExpression()

in recipes/src/main/java/com/uber/lintchecks/recipes/guardrails/JavaOnlyDetector.kt [129:148]


      override fun visitLambdaExpression(node: ULambdaExpression) {
        if (node.isReturnExpression() && node.isEnclosedInJavaOnlyMethod()) {
          return
        }
        node.functionalInterfaceType?.let { type ->
          if (type is PsiClassType) {
            type.resolve()?.let { psiClass ->
              context.evaluator.findAnnotation(psiClass, JAVA_ONLY)?.let {
                val message = anonymousTypeString(psiClass, "lambda")
                context.report(ISSUE, context.getLocation(node.sourcePsi!!), message)
                return
              }
              val functionalMethod = psiClass.methods.first()
              functionalMethod.toUElementOfType<UMethod>()?.isAnnotationPresent()?.let {
                node.report(it, "expressed as a lambda in Kotlin")
              }
            }
          }
        }
      }