From 991f12bd738995e726de18e807b4046c1f4f8041 Mon Sep 17 00:00:00 2001 From: Vladimir Ilmov Date: Fri, 5 Jun 2020 01:16:35 +0200 Subject: [PATCH] (LightClasses) while looking for accessors we expect them to be taken from single class --- .../jetbrains/kotlin/asJava/LightClassUtil.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt index 55d15904e5f..5555a8da5d6 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/LightClassUtil.kt @@ -128,10 +128,18 @@ object LightClassUtil { return getPsiMethodWrappers(declaration).firstOrNull() } - private fun getPsiMethodWrappers(declaration: KtDeclaration): Sequence = - getWrappingClasses(declaration).flatMap { it.methods.asSequence() } - .filterIsInstance() - .filter { it.kotlinOrigin === declaration } + private fun getPsiMethodWrappers(declaration: KtDeclaration): Sequence { + val classes = getWrappingClasses(declaration) + for (clazz in classes) { + // the first class with methods found should contain all methods with kotlinOrigin, so no need to look after + val methods = clazz.methods + .filterIsInstance() + .filter { it.kotlinOrigin === declaration } + if (methods.isNotEmpty()) + return methods.asSequence() + } + return emptySequence() + } private fun getWrappingClass(declaration: KtDeclaration): PsiClass? { if (declaration is KtParameter) {