From eb74d18f59587d26be0930a71d032ebb772f0e19 Mon Sep 17 00:00:00 2001 From: Makentoshe Date: Sun, 27 Oct 2019 14:55:36 +0300 Subject: [PATCH] [fix] Fix listener signature parsing with generics cause IllegalStateException --- .../android/anko/render/ListenerRenderer.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/anko/library/generator/src/org/jetbrains/android/anko/render/ListenerRenderer.kt b/anko/library/generator/src/org/jetbrains/android/anko/render/ListenerRenderer.kt index 8b7ab33b..92f39b4b 100644 --- a/anko/library/generator/src/org/jetbrains/android/anko/render/ListenerRenderer.kt +++ b/anko/library/generator/src/org/jetbrains/android/anko/render/ListenerRenderer.kt @@ -43,10 +43,14 @@ abstract class AbstractListenerRenderer(context: GeneratorContext) : Renderer(co override fun processElements(state: GenerationState) = generatedFile { importList -> for (listener in state[ListenerGenerator::class.java]) { - when (listener) { - is SimpleListenerElement -> append(listener.render(importList)) - is ComplexListenerElement -> append(listener.render(importList)) - else -> throw RuntimeException("Invalid listener type: ${listener.javaClass.name}") + try { + when (listener) { + is SimpleListenerElement -> append(listener.render(importList)) + is ComplexListenerElement -> append(listener.render(importList)) + else -> throw RuntimeException("Invalid listener type: ${listener.javaClass.name}") + } + } catch (e: IllegalStateException) { + state.context.logger.i("Skip ${listener.clazz.name} listener") } } }