in dsl/ktor/ktor-lang-parser/src/main/kotlin/io/kotless/parser/ktor/processor/action/GlobalActionsProcessor.kt [24:41]
override fun process(files: Set<KtFile>, binding: BindingContext, context: ProcessorContext): Output {
val permissions = HashSet<Permission>()
processClasses(files, binding) { klass, _ ->
klass.visitNamedFunctions(filter = { func -> func.name == KotlessAzure::prepare.name }) { func ->
func.visitCallExpressionsWithReferences(
filter = { it.getFqName(binding) == "io.ktor.application.ApplicationEvents.subscribe" }, binding = binding, visitOnce = true
) { element ->
val event = element.getArgument("definition", binding)
if (event.asReferencedDescriptorOrNull(binding)?.fqNameSafe?.asString() == "io.kotless.dsl.ktor.lang.LambdaWarming") {
permissions += PermissionsProcessor.process(element, binding, context)
}
}
}
}
return Output(permissions)
}